捕捉局部变量的值我有这个for
循环:如何在异步回调
for(var i = 0; i < characters.length; i++)
{
var character = characters[i];
charService.get(character.name).then(function (characterData)
{
//I want character to be captured here, i.e. the character in the current loop
character.data = characterData;
});
}
由于charService.get()
是异步的,由执行回调的时候,character
是数组(最后一个元素,因为循环已经结束),因此以前的所有character
都留在没有数据的情况下。
如何保证回调里面的character.data
引用异步方法执行的循环的character
?
使用玄乎和传递参数将使它坚持它 –
这已经回答了[点击这里](http://stackoverflow.com/questions/11488014/asynchronous-process-inside-a-javascript-for-loop),[here](http://stackoverflow.com/questions/4288759/asynchronous-for-cycle在JavaScript)和[这里](http://stackoverflow.com/quest离子/ 21184340 /异步换环在节点-JS)。 – roperzh