JavaScript ရှိ Callbacks များဖြင့် Asynchronous Code

ကျွန်ုပ်တို့တွင် အချို့သော asynchronous လုပ်ဆောင်ချက် ရှိသည်ဆိုပါစို့:

javascriptfunction make() {
  setTimeout(function() {
    console.log('1');
  }, 3000);
}

ကျွန်ုပ်တို့သည် ဤလုပ်ဆောင်ချက်ကို အောက်ပါအတိုင်း အသုံးပြုသည်ဆိုပါစို့:

javascriptmake();
console.log('2'); // ပထမဆုံး စီမံဆောင်ရွက်မည်

ဒုတိယ console.log သည် လုပ်ဆောင်ချက် အတွင်းရှိ asynchronous လုပ်ဆောင်ချက် ပြီးမြောက်ပြီးမှသာ စီမံဆောင်ရွက်စေလိုသည်ဆိုပါစို့။ ၄င်းအတွက် အသုံးပြုသည့် ချဉ်းကပ်နည်းတစ်ခုမှာ callback ကို အသုံးပြုခြင်းဖြစ်သည်: စောင့်မျှော်နေသော code ကို အမည်မဲ့လုပ်ဆောင်ချက်တစ်ခုအတွင်း ထည့်သွင်းပြီး make လုပ်ဆောင်ချက်ထံ parameter အဖြစ် ပေးပို့ပါမည်:

javascriptmake(function() {
  console.log('2');
});

ဟုတ်ပါသည်၊ ဤအရာသည် ကျွန်ုပ်တို့၏ ပြဿနာကို အလိုအလျောက် ဖြေရှင်းပေးမည်မဟုတ်ပါ။ လောလောဆယ်တွင် ကျွန်ုပ်တို့သည် အောက်ပါသဘောတူညီချက်ကိုသာ ပြုလုပ်ထားသည်: make စီမံဆောင်ရွက်ပြီးနောက် code ကို စီမံဆောင်ရွက်လိုပါက ထို code ကို callback အဖြစ် make ခေါ်ဆိုမှုထဲသို့ ပေးပို့ပါ။

ကျွန်ုပ်တို့၏ သဘောတူညီချက်နှင့်အညီ အလုပ်လုပ်စေရန် make လုပ်ဆောင်ချက်၏ code ကို ပြင်ဆင်ပါမည်:

javascriptfunction make(callback) {
  setTimeout(function() {
    console.log('1'); // အချို့သော asynchronous လုပ်ဆောင်ချက်၊ တစ်ခုထက်ပို၍ ဖြစ်နိုင်သည်
    callback();       // ထို့နောက် ကျွန်ုပ်တို့၏ callback
  }, 3000);
}
Задание 1

console တွင် နံပါတ်များ မည်သည့်အစဉ်အတိုင်း ပေါ်လာမည်ကို ရှင်းပြပါ:

javascriptfunction make(callback) {
  setTimeout(function() {
    console.log('1');
    callback();
  }, 3000);
}

make(function() {
  console.log('2');
  console.log('3');
});