【发布时间】:2015-11-23 01:51:07
【问题描述】:
我有一个函数,它需要一个应该用 3 个参数解析的承诺。
问题是返回promise的函数必须等待另一个deferred
function load(){
var d = $.Deferred();
this.getData().then(function(){
....
d.resolve(1, 2, 3);
});
return d.promise();
}
load().then(function(a, b, c){
....
});
有什么方法可以使用 getData() 已经返回的承诺并避免创建另一个延迟对象?问题是 getData 返回的承诺在 then() 被调用之前解决了,我不知道如何用新参数再次解决它
【问题讨论】:
-
如果
getData已经返回的promise 不能用(1, 2, 3)实现,那么你不能使用它——一个promise 只能被解决一次。为此创建一个新的 deferred 并没有错,但是它应该看起来 like this 而不是使用 deferred antipattern。
标签: javascript jquery promise