Javascript 要更新回调中的对象,请提供正确的日志,但全局对象未更新
我对在Javascript中使用回调函数相当陌生。我也不确定回调是否是我的问题 我从数据库中获取一些数据,并希望使用.push方法将其保存到一个对象 在把它推进去之后,我记录了这个对象,它记录了正确的数据。所以数据库连接不成问题 我使用的是一种模型-视图-控制器模型,希望控制器将数据从模型传递到视图组件。如果我尝试Models get方法,我会得到一个空对象 我试图通过日志记录找出数据丢失的地方,正如您在调用getData()的init函数中看到的那样。此日志已返回“未定义” 有人知道为什么会发生这种情况吗?或者有人认为我对回调方法的使用有主要的误解吗 我真的很想在这里得到一些帮助 提前感谢;) 我带着承诺试过了。但我想我不太明白这是怎么回事。甚至在查阅了几个关于这个话题的博客之后 以下是我的尝试:Javascript 要更新回调中的对象,请提供正确的日志,但全局对象未更新,javascript,callback,data-loss,Javascript,Callback,Data Loss,我对在Javascript中使用回调函数相当陌生。我也不确定回调是否是我的问题 我从数据库中获取一些数据,并希望使用.push方法将其保存到一个对象 在把它推进去之后,我记录了这个对象,它记录了正确的数据。所以数据库连接不成问题 我使用的是一种模型-视图-控制器模型,希望控制器将数据从模型传递到视图组件。如果我尝试Models get方法,我会得到一个空对象 我试图通过日志记录找出数据丢失的地方,正如您在调用getData()的init函数中看到的那样。此日志已返回“未定义” 有人知道为什么会发
init = function() {
console.log("init Detail.js");
setupParse();
getData().then(function(){
console.log(einstellerData);
console.log(vermieterData);
$(that).trigger("setWohnungsDetails");
});
return that;
},
getData = function() {
var promise = new Promise();
getObjektData(function(einsteller, vermieter){
getVermieterData(vermieter);
getEinstellerData(einsteller);
});
promise.resolve();
return promise;
},
谁能帮我一下,告诉我我在这里误解了什么吗?我猜
queryObjekt.get
在getObjectData
中是异步的,而getData
期望getObjectData
是即时的
如果您在链接异步事件及其结果数据时遇到问题,我建议您了解承诺的概念。寻找承诺/A或延期。对于承诺,您不必一直传递回调,相反,您有一个最终将具有值的中间承诺对象。您可以将回调添加到承诺中,而不是生成承诺的函数。我可以通过以下方式执行此操作:$.when(getData()).done(function(){console.log(einstellerData);console.log(verimeterdata);$(that.trigger(“setWohnungsDetails”);});如果
getData
返回一个承诺,则在时不需要将其包装在中。但是是的,这是本质。我不知道如何回报承诺。我编辑了我的问题,这样你就可以看到我是如何试图回答的。
init = function() {
console.log("init Detail.js");
setupParse();
getData().then(function(){
console.log(einstellerData);
console.log(vermieterData);
$(that).trigger("setWohnungsDetails");
});
return that;
},
getData = function() {
var promise = new Promise();
getObjektData(function(einsteller, vermieter){
getVermieterData(vermieter);
getEinstellerData(einsteller);
});
promise.resolve();
return promise;
},