失去上下文与parse.com javascript SDK
Losing context with parse.com javascript SDK
我这样做的目的是将对象数组存储在对象字面量中以供以后引用。我在一个让我感到困惑的地方失去了上下文(如果这是正确的术语的话)。下面是代码:
HuntObject = {
// Data.hunts gives collection
Data: {},
fetchCollec: function(){
var self = this;
var huntObj = new Parse.Query(huntObject);
huntObj.find({
success: function(results){
var hunts = [];
for(i in results){
hunts.push(i);
}
console.log(self);
//Here self references HuntObject
self.Data = hunts;
},
error: function(e){
console.log(e.message);
}
});
console.log(self);// Here self references HuntObject
console.log(self.Data); // empty
因此,在我的console.log语句中,我想要的正确上下文被引用,并且在最后一次对self的日志调用中,我甚至可以在控制台中看到数据对象现在在其中有一个对象数组。但一旦我试图引用那个数组,我就会得到一个空对象。我尝试以不同的方式分配数组,如self。data。array = hunts。我还尝试将Data设置为这样的方法。
Data: (function(){
return {
array: []
}
}());
我想也许我对不同情况下上下文变化的理解是相当弱的,所以很高兴解决我最初的目标,但更重要的是,我想更好地理解上下文,为什么我的实现在这种情况下失败?
这不是作用域或上下文问题,您正在处理您的self
变量。
我猜Parse.Query
是异步。所以console.log
必须在成功函数内;在调用Parse.Query
之后立即在代码中执行此操作,调用它太快(在查询完成之前)。
:
huntObj.find({
success: function (results) {
var hunts = [];
for (i in results) {
hunts.push(i);
}
console.log(self);
//Here self references HuntObject
self.Data = hunts;
// *********** Move these here
console.log(self); // Here self references HuntObje
console.log(self.Data); // Not empty anymore
},
error: function (e) {
console.log(e.message);
}
});
// Any code here runs after you've *started* the query, but
// before it *completes*
相关文章:
- 包括用于facebook评论框的JavaScript SDK
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- Soundcloud Javascript SDK 3.0-回调无法读取属性'connectCallback
- FB.login访问令牌facebook javascript SDK
- Loopback AngularJS JavaScript SDK - Gruntfile plugin
- 如果设置了cookie,则Facebook登录Javascript SDK自动登录
- 在SoundCloud中,使用JavaScript SDK流式传输曲目是否会增加该曲目的playback_count
- 如何使用Parse.com JavaScript SDK上传图像
- javascript sdk正在打开多个登录对话框
- chrome中的Facebook JavaScript SDK Connect问题
- 如何在aws S3 javascript SDK中配置interval和max_attempts
- Facebook Javascript SDK:发布到提要时验证访问令牌时出错
- 通过Javascript SDK登录Facebook可以在移动设备和本地主机上使用,但不能在台式机上使用
- 是否可以避免使用SoundManager2和SoundCloud JavaScript SDK将歌曲下载到所提供的位置
- 安全地实现用于Facebook身份验证的Javascript SDK
- Facebook JavaScript SDK 检查用户是否为粉丝(错误:指定的版本无效)
- 组合不同 Javascript SDK 回调的最佳实践
- 使用 Javascript SDK 创建 Parse.File
- Facebook javascript sdk 基本登录或初始化错误
- Facebook Javascript SDK提要对话框显示空白窗口