我正在尝试学习使用延迟对象,但是在"then"块中,我没有得到预期的参数,感到困惑。
var makeCall = function (err, param) {
var deferred = Q.defer();
setTimeout(function() {
console.log(1111, err, param);
deferred.resolve(err, param);
}, 1000);
return deferred.promise;
};
makeCall('test', '11').then(function(err, data) {
console.log(222, err, data);
});
使用Console.函数,1111输出了从Ajax调用返回的正确数据,但是222没有。
1111
和222
。 - thefourtheyedeferred
对象,而应该使用Promise构造函数,通过Q.Promise
暴露出来 - 这样更安全,也更可取。 - Benjamin Gruenbaum