@bernex

Как сделать async/await вывод в файл в правильном порядке?

let data = {cat:1,dog:2};
Object.keys(data).map(async (id) => {
                await  appendFile(fileName, id);
                await  appendFile(fileName, data[id]);
        });


out: catdog12

Но я хочу: cat1dog2

Как сделать такой асинхронный вывод в файл series(с правильным порядком) и чтобы исопользовать map,forEach,lodash?
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
async function saveData(data) {
  for(let id of Object.keys(data)) {
    await  appendFile(fileName, id);
    await  appendFile(fileName, data[id]);
  }
}

saveData({cat:1,dog:2})


Как вариант, для последовательного выполнения, решить задачу чисто на промисах:
let data = {cat:1,dog:2};
Object.keys(data).reduce(
  (p, id) => p
    .then(() => appendFile(fileName, id))
    .then(() => appendFile(fileName, data[id])),
  Promise.resolve()
);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы