بعداز همه اين توضيحات اذن دهيد كه مبادرت طراحي اپليكيشن در مشهد به تشكيل داد يك 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 استعمال كنيم كه انتخاب كنيم كه درخواست ما توفيق آميز بوده يا اين كه نه و در هر قوانيني با داده هاي نو اپ را ادامه دهيم.
برچسب:
طراحي اپليكيشن در مشهد،
ادامه مطلب
بازدید: