Вызовите ту же функцию, когда обещание разрешено или отклонено в JS for loop

#javascript #promise

#javascript #обещание

Вопрос:

Вот моя функция, которая возвращает обещание:

 function myFunction(i){
  return new Promise(function(resolve,reject){
    setTimeout(function(){
      console.log(i)
      resolve(i)
    },i*1000)
  })
}
  

Я хочу вызывать myFunction последовательно на каждой итерации цикла, когда обещание функции разрешено или отклонено.

 // rough idea but it doesn't work 
for (var i = 0; i < 5; i  ) {
  myFunction(i).then(function(){
     myFunction(i)
  }).catch(function(){
     myFunction(i)
  })
}
  

Как я могу сделать это с синтаксисом ES5?

Комментарии:

1. Вы можете использовать полизаполнение, поэтому обещание также совместимо со старыми браузерами: npmjs.com/package/promise-polyfill

2. Почему вы не хотите использовать обычный современный синтаксис? Какую библиотеку promise вы используете в ES5?

3. как это может работать? Вы даже не правильно настроили первоначальное обещание. Вам нужно следовать инструкциям по его использованию. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /…

4. По мере написания вашего цикла вы дважды запускаете идентичный вызов функции myFunction(i) . Это действительно то, чего вы хотите?