Що бÑде ÑезÑлÑÑаÑом ÑÑого кодÑ?
важливÑÑÑÑ: 5
console.log(1);
setTimeout(() => console.log(2));
Promise.resolve().then(() => console.log(3));
Promise.resolve().then(() => setTimeout(() => console.log(4)));
Promise.resolve().then(() => console.log(5));
setTimeout(() => console.log(6));
console.log(7);
У конÑÐ¾Ð»Ñ Ð¼Ð¸ побаÑимо: 1 7 3 5 2 6 4.
ÐÐ°Ð²Ð´Ð°Ð½Ð½Ñ Ð´Ð¾ÑиÑÑ Ð¿ÑоÑÑе, нам поÑÑÑбно лиÑе знаÑи, Ñк пÑаÑÑÑÑÑ ÑеÑги мÑкÑÐ¾Ð·Ð°Ð´Ð°Ñ Ñ Ð¼Ð°ÐºÑозадаÑ.
ÐодивимоÑÑ, Ñо вÑдбÑваÑÑÑÑÑ, кÑок за кÑоком.
console.log(1);
// ÐеÑÑий ÑÑдок виконÑÑÑÑÑÑ Ð½ÐµÐ³Ð°Ð¹Ð½Ð¾ Ñ Ð²Ð¸Ð²Ð¾Ð´Ð¸ÑÑ `1`.
// Ðа даний Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑеÑги макÑÐ¾Ð·Ð°Ð´Ð°Ñ Ñ Ð¼ÑкÑÐ¾Ð·Ð°Ð´Ð°Ñ Ð¿Ð¾ÑожнÑ.
setTimeout(() => console.log(2));
// `setTimeout` Ð´Ð¾Ð´Ð°Ñ Ð·Ð²Ð¾ÑоÑний виклик ÑÑнкÑÑÑ Ð´Ð¾ ÑеÑги макÑозадаÑ.
// - вмÑÑÑ ÑеÑги макÑозадаÑ:
// `console.log(2)`
Promise.resolve().then(() => console.log(3));
// ÐвоÑоÑний виклик ÑÑнкÑÑÑ Ð´Ð¾Ð´Ð°ÑÑÑÑÑ Ð´Ð¾ ÑеÑги мÑкÑозадаÑ.
// - вмÑÑÑ ÑеÑги мÑкÑозадаÑ:
// `console.log(3)`
Promise.resolve().then(() => setTimeout(() => console.log(4)));
// ÐвоÑоÑний виклик ÑÑнкÑÑÑ Ñз `setTimeout(...4)` додаÑÑÑÑÑ Ð´Ð¾ мÑкÑозадаÑ
// - вмÑÑÑ ÑеÑги мÑкÑозадаÑ:
// `console.log(3); setTimeout(...4)`
Promise.resolve().then(() => console.log(5));
// ÐвоÑоÑний виклик додаÑÑÑÑÑ Ð´Ð¾ ÑеÑги мÑкÑозадаÑ
// - вмÑÑÑ ÑеÑги мÑкÑозадаÑ:
// `console.log(3); setTimeout(...4); console.log(5)`
setTimeout(() => console.log(6));
// `setTimeout` Ð´Ð¾Ð´Ð°Ñ Ð·Ð²Ð¾ÑоÑний виклик ÑÑнкÑÑÑ Ð´Ð¾ макÑозадаÑ
// - вмÑÑÑ ÑеÑги макÑозадаÑ:
// `console.log(2); console.log(6)`
console.log(7);
// Ðегайно виводиÑÑ 7.
ÐÑдведемо пÑдÑÑмки,
- ЧиÑла
1Ñ7зâÑвлÑÑÑÑÑÑ Ð²ÑдÑазÑ, ÑÐ¾Ð¼Ñ Ñо пÑоÑÑÑ Ð²Ð¸ÐºÐ»Ð¸ÐºÐ¸console.logне викоÑиÑÑовÑÑÑÑ Ð¶Ð¾Ð´Ð½Ð¸Ñ ÑеÑг. - ÐоÑÑм, пÑÑÐ»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð½Ñ Ð¾Ñновного поÑÐ¾ÐºÑ ÐºÐ¾Ð´Ñ, запÑÑкаÑÑÑÑÑ ÑеÑга мÑкÑозадаÑ.
- ÐÑн мÑÑÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸:
console.log(3); setTimeout(...4); console.log(5). - ÐâÑвлÑÑÑÑÑÑ ÑиÑла
3Ñ5, аsetTimeout(() => console.log(4))Ð´Ð¾Ð´Ð°Ñ Ð²Ð¸ÐºÐ»Ð¸Ðºconsole.log(4)в кÑнеÑÑ ÑеÑги макÑозадаÑ. - ЧеÑга макÑÐ¾Ð·Ð°Ð´Ð°Ñ ÑÐµÐ¿ÐµÑ Ñака:
console.log(2); console.log(6); console.log(4).
- ÐÑн мÑÑÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸:
- ÐÑÑÐ»Ñ Ñого Ñк ÑеÑга мÑкÑÐ¾Ð·Ð°Ð´Ð°Ñ ÑÑÐ°Ñ Ð¿Ð¾ÑожнÑоÑ, виконÑÑÑÑÑÑ ÑеÑга макÑозадаÑ. РвÑн виводиÑÑ
2,6,4.
ÐаÑеÑÑÑ, маÑмо Ñ ÐºÐ¾Ð½ÑолÑ: 1 7 3 5 2 6 4.