Array.reduce Это довольно мощная функция, но я хотел поделиться техникой, которую я нашел полезным, серийным выполнением Асинхронизация функции.
const asyncs = [asyncFn, asyncFn1, asyncFn2, ...];
//Simple execution with no results
await asyncs.reduce((promise, asyncFn) => promise.then(asyncFn),
Promise.resolve());
//Save results to an array
const asyncResults = await asyncs.reduce((promise, asyncFn) =>
promise.then(results =>
asyncFn()
.then(newResult => [...results, newResult])),
Promise.resolve([]));
Надеюсь, вы нашли это полезным. Если у вас есть какие -либо другие варианты использования, пожалуйста, дайте мне знать, оставив комментарий.
Оригинал: “https://dev.to/rikbrowning/async-reduce-usage-2aa2”