JavaScript ရှိ Callbacks များဖြင့် Asynchronous Code
ကျွန်ုပ်တို့တွင် အချို့သော asynchronous လုပ်ဆောင်ချက် ရှိသည်ဆိုပါစို့:
function make() {
setTimeout(function() {
console.log('1');
}, 3000);
}
ကျွန်ုပ်တို့သည် ဤလုပ်ဆောင်ချက်ကို အောက်ပါအတိုင်း အသုံးပြုသည်ဆိုပါစို့:
make();
console.log('2'); // ပထမဆုံး စီမံဆောင်ရွက်မည်
ဒုတိယ console.log သည် လုပ်ဆောင်ချက်
အတွင်းရှိ asynchronous လုပ်ဆောင်ချက်
ပြီးမြောက်ပြီးမှသာ စီမံဆောင်ရွက်စေလိုသည်ဆိုပါစို့။
၄င်းအတွက် အသုံးပြုသည့် ချဉ်းကပ်နည်းတစ်ခုမှာ
callback ကို အသုံးပြုခြင်းဖြစ်သည်:
စောင့်မျှော်နေသော code ကို အမည်မဲ့လုပ်ဆောင်ချက်တစ်ခုအတွင်း ထည့်သွင်းပြီး
make လုပ်ဆောင်ချက်ထံ parameter အဖြစ် ပေးပို့ပါမည်:
make(function() {
console.log('2');
});
ဟုတ်ပါသည်၊ ဤအရာသည် ကျွန်ုပ်တို့၏
ပြဿနာကို အလိုအလျောက် ဖြေရှင်းပေးမည်မဟုတ်ပါ။
လောလောဆယ်တွင် ကျွန်ုပ်တို့သည် အောက်ပါသဘောတူညီချက်ကိုသာ ပြုလုပ်ထားသည်:
make စီမံဆောင်ရွက်ပြီးနောက် code ကို စီမံဆောင်ရွက်လိုပါက
ထို code ကို callback အဖြစ် make ခေါ်ဆိုမှုထဲသို့ ပေးပို့ပါ။
ကျွန်ုပ်တို့၏ သဘောတူညီချက်နှင့်အညီ အလုပ်လုပ်စေရန်
make လုပ်ဆောင်ချက်၏ code ကို ပြင်ဆင်ပါမည်:
function make(callback) {
setTimeout(function() {
console.log('1'); // အချို့သော asynchronous လုပ်ဆောင်ချက်၊ တစ်ခုထက်ပို၍ ဖြစ်နိုင်သည်
callback(); // ထို့နောက် ကျွန်ုပ်တို့၏ callback
}, 3000);
}
console တွင် နံပါတ်များ မည်သည့်အစဉ်အတိုင်း ပေါ်လာမည်ကို ရှင်းပြပါ:
function make(callback) {
setTimeout(function() {
console.log('1');
callback();
}, 3000);
}
make(function() {
console.log('2');
console.log('3');
});