getting-started-with-javascript icon indicating copy to clipboard operation
getting-started-with-javascript copied to clipboard

js数组中的数据去哪里了?

Open pan-yong opened this issue 7 years ago • 3 comments

在外面定义了一个数组,读多个json文件,依次把数据push到数组中了。可是,在最后把数组数据一次性写文件时,数组数据又为空了,这是为什么?我错在哪里?

default

pan-yong avatar Aug 29 '17 18:08 pan-yong

for循环里调用了异步函数。异步函数会通过回调方式返回结果。但是,在还没有回调之前,jsonFile.writeFile这行代码已经执行了。

xugy0926 avatar Aug 30 '17 04:08 xugy0926

// 模拟异步处理的手法

// 定义一个函数,函数名为callback
function callback() {
  console.log('我终于被调用了');
}

// 5秒钟后调用callback函数
setTimeout(callback, 5000);
console.log('哇喔,我已经结束了');

用上面这段代码来观看结果,体会异步的整个执行流程。或许能得到思路。

xugy0926 avatar Aug 30 '17 04:08 xugy0926

懂了,原来是异步的问题。谢谢老师。

pan-yong avatar Aug 30 '17 05:08 pan-yong