【发布时间】:2015-07-01 19:16:26
【问题描述】:
我有原生 JavaScript 的代码(我简化了它):
var finalArray = [];
for (var i; i < 3; i++) {
var a = -1; // set the default value
var b = Math.random();
ymaps.route(someArray[i]).then(function (res) {
a = res.getCoordinates();
});
finalArray.push([a, b]);
}
console.log(finalArray);
有一个名为ymaps 的第三方框架有一个方法route,它返回一个promise 对象。问题案例,我需要等到 promise.then 回调函数完成,然后使用函数 finalArray.push([a, b]); 继续主代码,或者更确切地说,同步异步进程。
我上面写的代码的结果是
[
[-1, /*random*/],
[-1, /*random*/],
[-1, /*random*/]
]
但不是-1 - 默认的var a 值,而是必须存在一些复数(在promise.then 回调函数中更改为var a)。
【问题讨论】:
-
请添加您传递给
.then()的回调函数的代码。没有看到就无法回答您的问题。 -
最好看一下,这里是
function(res){ a = res.getCoordinates(); }
标签: javascript jquery callback promise deferred