У меня есть асинхронная функция (Обещание), которая делает некоторые вещи.Я должен назвать это N раз.Каждый вызов представляет точку симуляции.Моим первым предположением было использование цикла:
for(let i=0; i < N; i++) {
myAsyncFunc(data[i])
.then(() => myAsyncFunc(data[i]) )
}
Очевидно, что это не работает, потому что циклы и перед любым последующим вызовом myAsyncFun.Как я могу поэтапно вызвать асинхронную функцию, ожидая результатов и перейти к следующему шагу?
Я попытался сделать следующее:
function myAsyncFunc(data) {
return new Promise( (resolve, reject) => {
anotherAsync.then(resolve).catch(reject);
}
}
function simulate(mode) {
[...Array(10)].reduce((p, _, i) =>
p.then(_ => new Promise(resolve => {
myAsyncFunc(data[i]); // <== this return a Promise
}
))
, Promise.resolve());
}
Но функции myAsyncFunc не называютсяв последовательности.