Могу ли я создать цепочку .then () после вспомогательного массива forEach ()? - PullRequest
0 голосов
/ 21 декабря 2018

Могу ли я сделать что-то подобное?

const array = ["foo", "bar", "hello", "etc"];

array.forEach(item => process(item)).then(() => {
    //run after forEach is done processing the whole array
});

Ответы [ 3 ]

0 голосов
/ 22 декабря 2018
const values = ["foo", "bar", "hello", "etc"];
Promise.all(values.map(process)).then((results)=>{
    //run after all promises are resolved
    console.log(results instanceof Array); // prints true
});

Вы можете использовать Promise.all() для разрешения массива обещаний и использовать values.map(process) для выполнения функции process() для каждого элемента массива в качестве аргумента.

0 голосов
/ 22 декабря 2018

Если вы намерены выполнить несколько шагов после forEach, то вы можете выполнить это с помощью последовательных шагов, таких как (forEach is sync)

Строка выполнения 1

const array = ["foo", "bar", "hello", "etc"];

Строка выполнения 2

array.forEach(item => process(item))

Строка исполнения 3

//Write your steps here to do after array.forEach
0 голосов
/ 21 декабря 2018

Нет.затем используется для обработки обещаний.forEach работает синхронно, поэтому вам, вероятно, следует сохранить обработанные элементы в новом массиве, а затем сразу выполнить логику постобработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...