Да, отредактировано для уточнения

от вопрос уже есть ответ здесь:

Использование async / await с циклом forEach 13 ответов

С помощьюawait вfor цикл внутриasync Функция обеспечивает ожидаемый результат выполнения в ожидании завершения текущегоPromise в течение итерации

const story = [1,2,3,4,5];

(async() => {

  for (var i = 0; i < story.length; i++) {
    await new Promise(function(resolve) {
      setTimeout(function() {
        resolve(story[i])
      }, 1000)
    }).then(function(chapter) {
      document.body
        .appendChild(document.createTextNode(chapter));
    });
  }

})()

ПочемуArray.prototype.forEach() не обеспечивают такую ​​же функциональность в ожидании выполнения текущегоPromise когдаawait использует внутри обратного вызова, переданного.forEach()?

const story = [1,2,3,4,5];

(async() => {

  story.forEach(async function(chapterUrl) {
    // does not await for Promise fulfillment
    await new Promise(function(resolve) {
      setTimeout(function() {
        resolve(chapterUrl)
      }, 1000)
    }).then(function(chapter) {
      document.body
      .appendChild(document.createTextNode(chapter));
    });
  });
  
})();

Ответы на вопрос(1)

Ваш ответ на вопрос