У меня есть несколько функций, которые возвращают обещание.
Есть функция запуска, которая выполняет другую функцию.
Поскольку это обещания, и я использую Promise.all, теоретически, Promise.all
должен отображаться только после того, как все остальные обещания будут выполнены.
Вот код:
arr = [];
function start() {
var aPromiseMain = new Promise((resolve, reject) => {
myfunction();
arr.push('start');
resolve(console.log('I am start'))
})
return aPromiseMain
}
start();
function myfunction() {
var aPromise = new Promise((resolve, reject) => {
setTimeout(() => {
arr.push('I am myfunction');
resolve(console.log('I am myfunction'))
}, 2000)
})
return aPromise
}
Promise.all(arr).then(values => {
console.log(values);
});
Вместо этого происходит следующее:
- Я начинаю
- Promise.all появляется
- Я
myfunction
Должно быть:
- Я начинаю
- Я
myfunction
- Promise.all
Как я могу это исправить?