// some class
find: function () {
var deferred = $.Deferred();
Func.run(function (err, results) {
return results;
});
deferred.resolve(results);
return deferred.promise;
},
test: function () {
$.when(this.find()).done(function(data){
console.log(data);
});
}
我试图调用this.find()
,但我希望它返回一个承诺...问题是Func.run()
是异步的,所以我需要等到完成之后。
我也使用backbone.js
,有不同的方式在那里做。
我的代码有什么问题?
答案 0 :(得分:0)
将您的解决方案声明放入Func.run
:
find: function () {
var deferred = $.Deferred();
clearTimeout(this.timer);
this.timer = setTimeout(function () {
return Func.run(function (err, results) {
deferred.resolve(results);
});
}, 1500);
return deferred.promise();
}