我现在正在用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); }
}
Run Code Online (Sandbox Code Playgroud)
因此任何偶数将以2秒延迟打印,而奇数将立即打印.无论如何运行我得到
1
3
5
7
9
<<2 seconds break>>
undefined
undefined
undefined
undefined
undefined
Run Code Online (Sandbox Code Playgroud)
看起来偶数值是"丢失".如何传递值确保函数不会丢失输入值?我错过了什么吗?
谢谢,毛罗