Выход из forEach до выполнения обещания

Я не пробовал, но

UPDATE tbl SET @temp=X, X=Y, Y=@temp

Могу сделать это.

Mark

-1
задан SpadeSeveren 18 January 2019 в 17:35
поделиться

2 ответа

Вы не можете использовать forEach в такой ситуации.

Вместо этого, поскольку вы используете параллелизм на основе обещаний, вам придется превратить каждый запрос в обещание (arr.map(num => ...)), а затем обернуть все из них в Promise.all, который сам возвращает обещание, которое разрешается после все завернутые обещания решаются.

let arr = [1, 2, 3, 4, 5, 6];

Promise.all(
  arr.map(num =>
    request("http://google.com")
      .get("/")
      .then(() => {
        console.log(num);
      })
  )
).then(() => {
  console.log("HERE");
});
0
ответ дан AKX 18 January 2019 в 17:35
поделиться

Еще один пример здесь. Вы можете использовать также для

let array = [1, 2, 3, 4, 5, 6];
async function processArray(arr){
  for (const num of array) {
    await request('http://google.com').get('/');
    console.log(num);
  }
  console.log('Done!');
}

processArray(array);
0
ответ дан Skraloupak 18 January 2019 в 17:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: