Parse.com / Javascript - 将用户对象ID字符串保存为用户指针
Parse.com / Javascript - Save users objectid string as user pointer
当我拥有用户的对象 ID 时,如何保存指向对象的用户指针。
我可以将对象保存到 Parse 中的类中,但受让人在 Parse 中始终是"未定义"的。
例如,我已经检索了用户对象,并可以通过以下方式获取用户名/对象 ID 等:
function getUserFromUsername(username) {
Parse.initialize("...", "...");
console.log('The username passed in is: ' + username);
var User = Parse.Object.extend("_User");
var query = new Parse.Query(User);
query.equalTo("username", username);
query.first({
success : function(result) {
// Do something with the returned Parse.Object values
var userPointer = new Parse.User();
userPointer = result;
console.log(userPointer.get('username')); // this returns the correct username
return userPointer;
},
error : function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
}
这是从下面的保存任务函数调用的:(注意,我已经记录了所有相关字段,它们按预期返回。
function saveNewTask(clientName, taskTitle, taskDue, assigneeArray) {
Parse.initialize("...", "...");
var x;
for (x in assigneeArray) {
var Task = Parse.Object.extend("Tasks");
var task = new Task();
task.set("title", taskTitle);
task.set("date", taskDue);
var thisAssignee = GetUserFromUsername(assigneeArray[x]);
task.set('assignee', thisAssignee);
task.save(null, {
success : function(task) {
// Execute any logic that should take place after the object is saved.
console.log('New object created with objectId: ' + task.id);
},
error : function(gameScore, error) {
// Execute any logic that should take place if the save fails.
// error is a Parse.Error with an error code and message.
console.log('Failed to create new object, with error code: ' + error.message);
}
});
}
}
因此,您应该保存指向任务的用户的指针。
var Task = Parse.Object.extend("Tasks");
var task = new Task();
task.set("user", user);
task.set("title", "taskTitle");
task.set("date", taskDue);
task.save(null, {
success : function(task) {
// Execute any logic that should take place after the object is saved.
console.log('New object created with objectId: ' + task.id);
},
error : function(gameScore, error) {
// Execute any logic that should take place if the save fails.
// error is a Parse.Error with an error code and message.
console.log('Failed to create new object, with error code: ' + error.message);
}
});
默认情况下,在获取对象时,不会读取相关的 Parse.Objects。这些对象的值在像这样被获取之前无法检索:
var user = task.get("user");
user.fetch({
success: function(user) {
//fetch user is here
}
});
这里对此进行了解释:https://parse.com/docs/js_guide#objects-pointers
脚本的问题在于,当您在 Parse 中查询时,它是异步完成的,因此您无法立即返回用户。相反,您需要返回承诺,然后在调用 getUserFromUsername 时处理它:
function getUserFromUsername(username) {
var User = Parse.Object.extend("_User");
var query = new Parse.Query(User);
query.equalTo("username", username);
return query.first();
}
getUserFromUsername('testUsername').then(function(result) {
//use User here
}, function(error) {
alert("Error: " + error.code + " " + error.message);
});
查看此有关承诺链接的文档,了解有关承诺的更多信息:
相关文章:
- 将URL字符串${userid}替换为javascript对象中的实际用户id
- 在Chrome for iOS中,附加到用户代理字符串的唯一选项卡ID
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- 将字符串替换为用户键入的文本
- 检查用户输入的字符串是否准确
- 当用户在命令提示符中选择任何字符串时,节点Js不为任何请求提供服务
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 如何报告用户输入的字符串长度
- 如何将 JSON 字符串中的文本替换为 Greasemonkey 的用户脚本
- 使用 Javascript 通过表单将预定义的字符串添加到用户输入中
- Jquery:在一个字符串中查找所有实例模式,提示用户替换模式的所有实例,然后进行替换
- 是否有可能/建议解析我的用户输入字符串 w 正则表达式
- JS/XSS:将用户提供的字符串分配给变量时;替换 <,> 和字符串分隔符是否足够
- 从用户提供的字符串生成自定义 Blockly 块,而无需 eval
- Parse.com / Javascript - 将用户对象ID字符串保存为用户指针
- 我想使用 JavaScript 从用户定义特殊字符更改字符串
- 如何在用户脚本中压缩/解压缩字符串
- Ajax 脚本接收用户字符串输入文本并以 JSON 格式发布
- 根据正确的用户字符串从XML文件中提取HTML