這幾天我正在用NodeJS構建我的第一個項目,但是我對某個任務有點困惑,我認爲這是一個簡單的任務,我想問題是我對這些知識缺乏瞭解異步方法,但我無法在任何地方找到答案。在NodeJS中使用異步響應的異步調用
我有一個簡單的循環遍歷數組和任何元素,根據一些規則,我會調用一個函數或另一個。 現在某些操作會比其他操作更快,所以我最終可能會返回元素N上的函數,而不是元素N-1上的函數。 爲簡單起見像這樣
for (var i = 0 ; i < 10 ; i++) {
if (i%2 === 0) {
setTimeout(function(i) {
console.log(i);
}, 2000);
}
else { console.log(i); }
}
所以任何偶數將印有2秒滯後而奇數數字將被立即打印。 反正運行它,我得到
1
3
5
7
9
<<2 seconds break>>
undefined
undefined
undefined
undefined
undefined
看起來甚至值爲「丟失」。 如何傳遞值以確保函數不會丟失輸入值? 我錯過了什麼嗎?
感謝, 莫羅