解析:保存后获取对象 ID
PARSE : Get object id after save
我确定这很容易,但我是javascript的新手...我已经搜索了很长时间,但没有找到解决方案在 PARSE 中,我想创建一个对象并获取 id 去保存
var Obj = Parse.Object.extend("obj");
var obj = new Obj();
obj.save(null,{success:function(obj){alert(obj.id)}})
这提醒 ID,但当我尝试获取值时,我只得到一个未定义的
var Obj = Parse.Object.extend("obj");
var obj = new Obj();
var objid;
obj.save(null,{success:function(obj){objid = obj.id}})
alert(objid)
定义
你可以帮我吗?谢谢
您传递给obj.save
的成功回调是异步调用的:它在 Parse 库收到成功响应后的某个时间点执行。第二个示例中的警报是同步调用的:它不会等待成功回调执行,因此此时永远不会定义objid
。
这不是一个与 Parse 特别相关的问题,而是在 JavaScript 中处理异步代码的一般问题。这些答案将为您提供JS中异步性的快速介绍:
为什么在函数内部修改变量后,我的变量保持不变? - 异步代码参考
如何从异步调用返回响应?
要扩展 user2943490 正确指出的内容,如果您希望该 alert() 正常工作,只需将其移动到成功回调中即可。
另外需要注意的是,目前 Parse 包括 Promises,其中函数可以在完成后一个接一个地调用和定义。下面是一个返回新创建对象的 objectId 的示例。
var ParseObj = Parse.Object.extend("obj");
// Create a new instance of class.
var obj = new ParseObj();
obj.save(null, { useMasterKey: true }).then(function(obj) {
response.success(obj.id); //obj.id is the objectId
}, function(error) {
// If there's an error storing the request, render the error page.
response.error('Failed to save object.');
});
相关文章:
- 为什么我的猫鼬对象 Id 请求返回一个空数组
- 基于变量创建json对象id
- Grails richui自动完成将对象传递给函数或更新对象ID
- 如何在jQuery中获取对象ID并将其与其他字符串组合
- 如何在 Javascript 中按 prev 对象 id 对对象数组进行排序
- 猫鼬对象 ID 不用作函数中的参数
- 如果对象 id 相同,如何合并对象
- 猫鼬对象 ID 不作为函数中的参数工作
- Parse.com / Javascript - 将用户对象ID字符串保存为用户指针
- 在 Javascript 中按对象 ID 分组
- JavaScript 通过 ID 获取元素与对象 ID
- 解析:保存后获取对象 ID
- 仅通过 GET 请求拉取对象的某些部分
- 使用 jQuery 将点击的对象 ID 转换为变量以进行优化
- 返回匹配对象 id 的下一个和上一个对象
- 如何获取具有指针字段的对象 ID 的记录
- 使用javascript在parse.com中迭代对象id
- 如何在javascript中访问当前rails对象id
- 无法按对象id查询对象
- aspx客户端事件(javascript)中的发件人对象ID