【发布时间】:2016-07-11 11:11:54
【问题描述】:
我使用 Q.js 调用一个 api 在我的 main 函数中使用如下两个循环
for i..10
for i...5
var promise = getLoc(x,y);
promise.then(function(value) {
//value is undefined...
}
在我的 getLoc 函数中,我有
function getLoc(x,y) {
var value;
var deferred = Q.defer();
Q.ninvoke(request, 'get', {
}).spread(function(response, body) {
value = body;
});
defferred.resolve(value);
return deferred.promise
}
为什么我传递给 then 函数的值没有定义?如何传递我的解析值?谢谢!
【问题讨论】:
-
只要避开deferred antipattern,问题就会自行消失!
-
这是正确的行为。在您调用
defferred.resolve(value);时,value未定义。
标签: javascript node.js asynchronous q deferred