Я пытался заставить следующий код работать так, как мне хотелось бы. Это вывод на консоль 1 2 3
.
const fs = require('fs');
const doSomthingWithFile = (file, number) => {
fs.readFile(file, () => {
console.log(number);
});
};
fs.readdir('./', (err, files) => {
for (let i = 0; i < files.length; i++) {
doSomthingWithFile(files[i], 1);
}
for (let i = 0; i < files.length; i++) {
doSomthingWithFile(files[i], 2);
}
});
console.log(3);
Я пытался использовать async / await и функции, которые возвращают обещания, но я предполагаю, что я все делаю неправильно, так как получаю 3 1 2
Как вывод.
Как бы убедиться, что все это выполняется в том порядке, в котором я хотел бы. Это означает, что сначала прочитайте каталог. Затем дождитесь окончания первого doSomthingWithFile()
, затем запустите второй и дождитесь последнего оператора журнала, пока не завершится обратный вызов readdir()
? 1010 *
Как я уже говорил, я в основном пытался искать на этом сайте для подобных тем, но все еще не может заставить это работать. Например, создание функций обратного вызова asyn c и ожидание функций внутри него не работало (или я, должно быть, делал это неправильно).