捕捉局部變量的值我有這個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