آدرس : تهران میدان فردوسی خیابان ایرانشهر بین سمیه و طالقانی مجتمع تجاری میلاد واحد 9

پشتیبانی 24 ساعته : 02188867940 – 09927674217

برای مشاهده لیست علاقه مندی ها وارد شوید!

مشاهده محصولات فروشگاه
0

هیچ محصولی در سبد خرید نیست.

تلاش برای ذخیره تماس ها

دسته بندی :اخبار سایت 27 مارس 2023 علیرضا بابامرادی 207
تلاش برای ذخیره تماس ها

تلاش برای ذخیره تماس ها

انواع مختلفی از طراحی پاسخ به تماس وجود دارد که سعی کرده اند به برخی از مسائل اعتماد (نه همه!) که ما به آنها نگاه کردیم رسیدگی کنند. این یک تلاش شجاعانه، اما محکوم به فنا برای نجات الگوی برگشت تماس از فروپاشی خود است.

به عنوان مثال، با توجه به مدیریت دقیق‌تر خطا، برخی از طراحی‌های API برای اعلان‌های خطا (یکی برای اعلان موفقیت، یکی برای اعلان خطا) ارائه می‌کنند.

function success(data) {
console.log( data );
}

function failure(err) {
console.error( err );
}

ajax( “http://some.url.1”, success, failure );

در APIهای این طراحی، غالباً کنترل کننده خطا () اختیاری است و اگر ارائه نشود، فرض می شود که می خواهید خطاها را بلعیده کنید. اوه

توجه: این طرح پاسخ به تماس تقسیم شده همان چیزی است که ES6 Promise API از آن استفاده می کند. در فصل بعدی به ES6 Promises با جزئیات بیشتری خواهیم پرداخت.

یکی دیگر از الگوهای متداول فراخوانی “سبک اول خطا” نامیده می شود

(گاهی اوقات “سبک گره” نامیده می شود، زیرا همچنین قراردادی است که در تقریباً تمام API های Node.js استفاده می شود)، که در آن اولین آرگومان یک پاسخ به تماس منفرد برای یک شی خطا رزرو می شود. در صورت وجود). در صورت موفقیت، این آرگومان خالی/نادرست خواهد بود (و هر آرگومان بعدی داده موفقیت خواهد بود)، اما اگر یک نتیجه خطایی اعلام شود، اولین آرگومان تنظیم/درست است (و معمولا هیچ چیز دیگری ارسال نمی شود):

function response(err,data) {
// error?
if (err) {
console.error( err );
}

// otherwise, assume success
else {
console.log( data );
}
}

ajax( “http://some.url.1”, response );

در هر دوی این موارد چند نکته باید رعایت شود.

اولاً، آنطور که ممکن است به نظر برسد، اکثریت مسائل اعتماد را واقعاً حل نکرده است. هیچ چیزی در مورد تماس برگشتی وجود ندارد که از فراخوان های مکرر ناخواسته جلوگیری یا فیلتر کند. علاوه بر این، اکنون اوضاع بدتر شده است، زیرا ممکن است سیگنال‌های موفقیت و خطا یا هیچکدام را دریافت کنید، و همچنان باید در مورد هر یک از این شرایط کدنویسی کنید.

همچنین، از این واقعیت غافل نشوید که اگرچه این یک الگوی استاندارد است که می‌توانید از آن استفاده کنید، اما بدون استفاده مجدد زیاد، قطعاً پرمخاطب‌تر و بی‌نقص‌تر است، بنابراین از تایپ همه آن‌ها برای هر پاسخ به تماس در برنامه خود خسته خواهید شد. .

در مورد مسئله اعتماد که هرگز تماس نگرفته اید چطور؟ اگر این یک نگرانی است (و احتمالاً باید باشد!)، احتمالاً باید یک بازه زمانی تنظیم کنید که رویداد را لغو کند. شما می توانید یک ابزار (فقط اثبات مفهوم نشان داده شده است) برای کمک به شما در این زمینه ایجاد کنید:

function timeoutify(fn,delay) {
var intv = setTimeout( function(){
intv = null;
fn( new Error( “Timeout!” ) );
}, delay )
;

return function() {
// timeout hasn’t happened yet?
if (intv) {
clearTimeout( intv );
fn.apply( this, arguments );
}

};
}

در اینجا نحوه استفاده از آن آمده است:

// using “error-first style” callback design
function foo(err,data) {
if (err) {
console.error( err );
}

else {
console.log( data );
}
}

ajax( “http://some.url.1”, timeoutify( foo, 500 ) );

علیرضا بابامرادی

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

  • چنانچه دیدگاهی توهین آمیز باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

لینک کوتاه:
0