Я хотел бы подтвердить, если порядок вызовов обратных вызовов, переданных в then
, гарантируется при наличии нескольких обратных вызовов по тому же обещанию.В обещаниях, гарантирован ли заказ обратного вызова?
Это то, что я наблюдаю. Пример:
function wait(delayMs) {
return new Promise(resolve => setTimeout(resolve, delayMs))
}
let prom = wait(500)
for (let i = 0; i < 20; ++i)
prom.then(() => { console.log(i) }) // OK: Display 0 to 19 in the right order
Я наблюдаю, что порядок обратного вызова соблюден, но я не нашел никакой документации по этому вопросу. Гарантирован ли заказ обратного вызова?
EDIT: Это не вопрос о том, как скреплять обещания. Здесь у меня есть только одно обещание с несколькими обратными вызовами. Обратные вызовы передаются в then
в определенном порядке. Я хотел бы знать, установлен ли порядок выполнения обратного вызова.
Вопрос, как представляется, касается асинхронных вызовов в цикле 'for', а не« обратного вызова »' Promise'? – guest271314
Возможный дубликат [JavaScript Promise then() ordering] (http: // stackoverflow.com/questions/29111626/javascript-prom-then-ordering) –
Нет, это не дубликат. Пожалуйста, попытайтесь понять предмет, прежде чем судить об этом. Я добавил уведомление. – Paleo