Как синхронизировать объекты Promise?

Я обещаю объекты, которые должны работать, синхронизировать. Например, второе обещание не должно работать до того, как будет выполнено первое. Если первый отклоняет первый, его нужно снова выполнить.

Я реализовал несколько примеров. Этот работает хорошо. вызовите getVal, подождите 2000 мс, верните i ++, снова вызовите getVal .....

 getVal() {
       return new Promise(function(resolve, reject) {
      setTimeout(function(){ resolve(19) }, 2000);
         });

     }

async promiseController(){

    for(var i =0;i<5;i++)
      {
        var _val = await this.getVal()
        console.log(_val+'prom');
      }
    }

Но мне нужно контролировать массив объектов обещаний. Что я хочу сделать, так это то, что у меня есть данные, и я разделил их на 5 частей. После того, как первая часть обработана (например, отправлена ​​на сервер), я хочу обработать вторую часть, иначе мне придется снова обрабатывать первую часть.

Это прототип реализации, которую я сделал

  getVal() {
   return new Promise(function(resolve, reject) {
  setTimeout(function(){ resolve(19) }, 2000);
     });

 }

async promiseController(){
  var proms=[]
  for(var i =0;i<5;i++)
    {
      proms.push(this.getVal())
    }

for(var i =0;i<5;i++)
  {
    var _val = await proms[i]
    console.log(_val+'prom');
  }
}

Обещания объектов в этом коде работают последовательно. Как я могу исправить код ниже, чтобы он работал синхронно в качестве первого примера.

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

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