let d = delay('1');
d.then( () => delay('2'))
.then( () => delay('3'))
.then( () => delay('4'))
async function delay(n) {
setTimeout( () => (alert(n)), 2000)
}
Функция возвращает промис, но задержка срабатывает только для первого вызова функции. Дальше по цепочке результаты идут без задержки.
В примере ниже все задержки учитываются
let d = new Promise( (resolve) => setTimeout( () => resolve(alert('1')), 2000 ))
d.then( () => new Promise( (resolve) => setTimeout( () => resolve(alert('2')), 2000)))
.then( () => new Promise( (resolve) => setTimeout( () => resolve(alert('3')), 2000)))
.then( () => new Promise( (resolve) => setTimeout( () => resolve(alert('4')), 2000)))
В чём отличие вызова async функции в .then от объявления там new Promise с таким же контекстом? Где я допустил ошибку?