Чтобы добиться согласованной / детерминированной асинхронной итерации по массиву, рассмотрите возможность обновления вашего кода для использования следующего шаблона:
async loadModAdv(object){
for(const data of object) {
if(data.status == "1") {
await this.doAction(data.fileName, parseInt(data.moduleAdvertise, 10) + 1)
}
}
}
В качестве заметки я заметил, что вы использовали функцию map
для итерации, однако онане похоже, что вы используете результат карты, поэтому в этом ответе я выбрал более простое решение, основанное на цикле for
.
Если вы хотите достичь «подобного карте» поведения с помощью этого паттерна, вы можете сделать что-то вроде этого:
async loadModAdv(object){
var results = []
for(const data of object) {
if(data.status == "1") {
results.push(await this.doAction(data.fileName, parseInt(data.moduleAdvertise, 10) + 1))
}
}
console.log('data in order ', JSON.stringify(results))
}
Надеюсь, это поможет!