#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)
. Это действительно то, чего вы хотите?