【发布时间】:2014-11-03 17:31:39
【问题描述】:
我知道这有几个线程,但我认为在 SAPUI5 上下文中,没有线程回答有关 SAPUI5 中延迟/同步调用的一般主题。
在我的控制器中,我得到了:
test : function() {
var dfd = $.Deferred();
var sServiceUrl = '/sap/opu/odata/sap/xyz/MySet?$format=json';
var post = $.ajax({
url: sServiceUrl,
type: "GET"
});
post.done(function(data){
console.log(data);
dfd.resolve();
});
post.fail(function(){
console.log("Error loading: " + sServiceUrl);
dfd.reject();
});
return dfd.promise();
},
在我看来,我正在调用方法并且我想等待结果,如何正确管理它?
var test = oController.test();
console.log(test);
$.when(test).done().then(console.log("finished"));
这种方法也不等待:
$.when(oController.test()).then(console.log("finished"));
正如预期的那样,测试未定义,“完成”被记录,当方法的 .done 准备好时,它被记录。但我想等待它(在最好的情况下从 ajax 返回数据)。
我如何等待 post.done() 在我的视图中继续?
【问题讨论】:
标签: jquery ajax jquery-deferred sapui5 .when