ساخت یک callback در جاوا اسکریپت( بخش اول)
بعداز همه این توضیحات اذن دهید که مبادرت طراحی اپلیکیشن در مشهد به تشکیل داد یک callback در جاوا اسکریپت کنیم.
آغاز Chrome Developer Console را گشوده نمایید( در ویندوز با فرمان Ctrl + Shift + J و در مک نیز با فرمان Cmd + Option + J) و آنگاه تابع تحت را در درون کنسول خویش وارد فرمایید:
function doHomework(subject) {
alert(`Starting my ${subject} homework.`);
}
در بخش بالا ما تابع do Homework را ساختیم ، تابع ما یک متغیر اخذ می نماید، با استعمال از کد پایین در کنسول خویش تابع خویش را فراخوانی نمایید:
doHomework('math');
// Alerts: Starting my math homework.
اکنون اذن دهید که callback خویش را به آن اضافه کنیم، تحت عنوان واپسین آرگومان در تابع do Homework() ما قادر خواهیم بود callback خویش را به آن ارسال کنیم. تابع callback تحت عنوان دومی آرگومان در هنگام فراخوانی تابع do Homework() تعریفوتمجید میشود.
function doHomework(subject, callback) {
alert(`Starting my ${subject} homework.`);
callback();
}
doHomework('math', function() {
alert('Finished my homework');
});
ایجاد کرد یک callback در جاوا اسکریپت( نصیب دوم)
همان طور که مشاهده میکنید در شرایطی که شما کد بالا را در کنسول خویش تایپ فرمایید شما دو هشدار را اخذ خواهید کرد. هشدار ‘starting homework’ را پس از هشدار ‘finished homework’ اخذ میکنید. البته تابع های callback در جاوا اسکریپت نیازی ندارند که به طبع در فراخوانی تابع ما تمجید شوند. آن ها میتوانند در جایی دیگر از کد ما تعریف و تمجید شوند، مانند نمونه تحت:
function doHomework(subject, callback) {
alert(`Starting my ${subject} homework.`);
callback();
}
function alertFinished(){
alert('Finished my homework');
}
doHomework('math', alertFinished);
فیض این نمونه ظریف شبیه سود نمونه قبل است البته پیکربندی آن پاره ای متعدد میباشد. همانگونه که میتوانید ببینید ما تمجید تابع alert Finished را در طی فراخوانی تابع do Homework() تحت عنوان آرگومان ارسال کردیم.
یک نمونه حقیقی و واقعی
هفته قبل اینجانب نوشته ی علمی ای را استیناف کردم که درباره تشکیل داد یک ربات توییتر صرفا در 38 خط کد بود، صرفا دلیلی که سبب میشد تا کدی که در آن نوشتهعلمی وجود داشت، عمل نماید این بود که استعمال از API توییتر در آن بود. وقتی که شما یک درخواست را برای API ساخت و ساز میکنید شما بایستی معطل بمانید تا جواب این درخواست ارسال خواهد شد پیش از آن که بخواهید با این درخواست کاری اعمال دهید. این یک نمونه تعجب آور از به کارگیری callback در جاوا اسکریپت در دنیای حقیقی وواقعی میباشد. در این مکان ذکر میکنیم کهاین نمونه مشابه به چه چیزی میباشد:
T.get('search/tweets', params, function(err, data, response) {
if(!err){
// This is where the magic will happen
} else {
console.log(err);
}
})
- T.get نشانه دهنده این میباشد که ما یک درخواست get برای API توییتر ساخت و ساز کرده ایم.
- درین درخواست سه پارامتر وجود داراست، پارامتر اولیه ‘search/tweets’ میباشد که ریشه درخواست ما میباشد، params که پارامتر جست و جوی بار ما است و یک تابع ناشناس که در واقع به عبارتی callback در جاوا اسکریپت است.
این callback دراین مکان بسیار اساسی میباشد به این دلیل که ما به آن نیاز داریم تا با به کار گیری از آن معطل یک جواب از سرور بمانیم پیش از آن که بتوانیم در کد خویش جلو رفتن کنیم. ما نمی دانیم آیا درخواست API ما توفیق آمیز خواهد بود یا این که نه به همین برهان بعداز ارسال پارامتر هایمان به search/tweets از روش درخواست get ما معطل میمانیم. هنگامی که API توییتر جواب قابل قبولی را ارسال می نماید تابع callback در جاوا اسکریپت فراخوانی می گردد. API توییتر همینطور میتواند یک شی ارور را به ما ارسال نماید. در تابع callback ما قادر خواهیم بود از یک فرمان if استعمال کنیم که انتخاب کنیم که درخواست ما توفیق آمیز بوده یا این که نه و در هر قوانینی با داده های نو اپ را ادامه دهیم.
برچسب: طراحی اپلیکیشن در مشهد،