На данный вопрос уже ответили:
Допустим у меня есть массив который я перебираю:
array = [
'item1',
'item2',
....
]
array.forEach((item,i) => { ... //getAnyThing() }
Например при переборе я вызываю метод в котором есть setTimeout():
getAnyThing() {
let w = window.open('anyUrl') // Просто пример в моём непонимании...
setTimeout(() => {
w.close();
},10000);
}
Сам вопрос: как во время перебора дождаться выполнения моего метода и только после этого следовать дальнейшему перебору?
array.forEach((item,i) => {
setTimeout(() => {
this.getAnyThing();
},10000);
}
Можете использовать async\await для этого.
array = [
'item1',
'item2',
'item3',
]
async function getAnyThing() {
await new Promise(resolve => {
setTimeout(() => {
resolve();
}, 1000);
});
}
~async function() {
for (let item of array) {
await getAnyThing();
console.log(item);
}
}()
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости