Middle
// Promise.resolve() // .then(() => console.log(1)) // // .then(() => console.log(2)) // // Promise.resolve() // .then(() => console.log(11)) // // .then(() => console.log(22)) //
sobes.tech AI
Ҷавоб аз AI
Дар кодда икки обещаниерзани мавжуд бўлиб, ҳар бири Promise.resolve() билан бошланади. Консолда чиқиш тартибини тушуниш муҳим.
Ҳар бир .then() ҳозирги чақирув стекидан кейин ишга тушадиган микротасклар навбатига ишловчини қўшади.
Ҳар икки занжир кетма-кет яратилганлиги учун, уларнинг ишловчилари эълон қилинган тартибда навбатга қўйилади.
Шунинг учун чиқиш қуйидагича бўлади:
1
2
11
22
Тушунтириш:
- Биринчи
.then(() => console.log(1))ишга тушади ва1чиқаради. - Кейинги
.then(() => console.log(2))ишга тушади ва2чиқаради. - Кейин, иккинчи занжирдан
.then(() => console.log(11))ишга тушади ва11чиқаради. - Ва охирги
.then(() => console.log(22))ишга тушади ва22чиқаради.
Агар чиқиш аралаш ёки бошқа тартибда бўлса, ваъдалар структурасини ўзгартириш ёки setTimeoutдан фойдаланиш керак бўлади.