nodejs fs.exists(fs.access)在for循环中发生了奇怪的事情

时间:2017-12-05 08:25:25

标签: node.js for-loop fs

我的代码:

finalArray2.append(contentsOf: vehicles)

结果:
idx:0
idx:1
无法访问!2
它就在那里2 无法访问!2
它就在那里2

为什么i = 2?
我该如何解决?

2 个答案:

答案 0 :(得分:4)

你的问题的关键是asyncrhony。两个fs方法都是异步的,稍后会执行,当它们要执行时,i的值为2,因为循环已经完成。

解决它的最简单方法是通过let

更改循环变量的声明
for(let i=0; i<2; i++)

它将i的范围限制为一次迭代

答案 1 :(得分:1)

fs.accessfs.exists是异步调用,当它们执行回调时,由于循环,累加器已经设置为2。