1

I recently notice that when I make async call in forEach loop like this:

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

it doesn't wait until the promise get resolved but if I do:

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

it wait for the promise to get resolved, I mean it fire the async calls one after another.

Can someone explain me why ?

What is the difference between items.forEach(function (item){}); and for(item of items) ?

Amadou Beye
  • 2,538
  • 3
  • 16
  • 37

0 Answers0