for循环之间的区别

时间:2018-12-22 03:10:34

标签: javascript for-loop asynchronous

我最近注意到,当我在forEach循环中进行如下异步调用时:

fs.readdir(directory, function (err, filenames) {
    if (err) throw err;
    filenames.forEach(async function (filename) {
        let promise = await query.getItemByName(filename);
    });
});

它不会等到诺言得到解决,但如果我这样做了:

fs.readdir(directory, async function (err, filenames) {
    if (err) throw err;
    for (filename of filenames) {
        let promise = await query.getItemByName(filename);
    });
});

它等待诺言得到解决,我的意思是它会依次触发异步调用。

有人可以解释我为什么吗?

items.forEach(function (item){});for(item of items)有什么区别?

0 个答案:

没有答案