برنامه نویسی

روشهای استاتیک وعده:

در اینجا یک تازه کننده رعد و برق روشن است روشهای استاتیک را قول دهید (.any ، .all ، .race ، .allsettled ، .resolve ، .reject) و API های وعده .

روشهای استاتیک را قول دهید

روشهای استاتیک قول می دهند خود کلاس قول خود را فراخواند، نه به عنوان یک وعده. آنها کمک می کنند چندین وعده را مدیریت کنید.

1. وعده.

  • می گیرد مجموعه وعده ها به عنوان ورودی وت یک وعده واحد را برمی گرداند.
  • این کار در صورت برطرف شدن هر یک از وعده های موجود در یک آرایه ، حل کنید با مقدار حل شده
  • اگر همه وعده ها رد می شوند، قول با خطا “ExgregateError: همه وعده ها رد شد” رد می شود.
Promise.any([Promise.reject('Error!'), Promise.resolve('Success!')])
  .then(console.log) // 'Success!'
  .catch(console.error);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. وعده. همه

  • این روش طول می کشد مجموعه وعده ها به عنوان ورودی وت یک وعده واحد را برمی گرداند.
  • من هنگامی که تمام وعده های موجود در آرایه برطرف شده است ، حل می شود، یا رد می کند که هر یک از وعده ها را رد می کندبشر
Promise.all([Promise.resolve('First'), Promise.resolve('Second')])
.then(console.log) // ['First', 'Second']
.catch(console.error);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3. Promise.race

  • این روش طول می کشد مجموعه وعده ها به عنوان ورودی وت یک وعده واحد را برمی گرداند.
  • این وعده را به محض هر یک از وعده ها باز خواهد گشت حل شده (یا حل شده یا رد شده).
Promise.race([
  new Promise((_, reject) => setTimeout(reject, 1000, 'Rejected!')),
  new Promise(resolve => setTimeout(resolve, 500, 'Resolved!')),
])
.then(console.log) // 'Resolved!'
.catch(console.error);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

4. وعده. تمام

  • این روش شبیه به Promise.all () است ، اما آن منتظر است تا همه وعده ها برای تسویه حساب (حل و فصل یا رد)، صرف نظر از نتیجه آنها (resolve یا reject).
  • من مجموعه ای از اشیاء را با وضعیت هر وعده برمی گرداند.
Promise.allSettled([
  Promise.resolve('Good!'),
  Promise.reject('Bad!'),
])
.then(console.log);
/* Output:
[
  { status: 'fulfilled', value: 'Good!' },
  { status: 'rejected', reason: 'Bad!' }
]
*/
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

5. Promise.Resolve (مقدار)

  • یک وعده را برمی گرداند که در حال حاضر است با مقدار ارائه شده حل شد.
  • اگر ارزش یک وعده باشد ، این قول را بدون تغییر باز می گرداند.
  • برای اطمینان از گردش کار مبتنی بر وعده ، حتی برای مقادیر همگام سازی مفید است.
Promise.resolve(42).then(console.log); // 42

Promise.resolve(Promise.resolve('OK')) // Flattens the inner promise
  .then(console.log); // OK
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

6. Promise.Reject (دلیل)

  • یک وعده را برمی گرداند که در حال حاضر است با دلیل مشخص رد شد.
  • اغلب برای شبیه سازی خطاها در زنجیرها یا خروج های اولیه استفاده می شود.
Promise.reject('Error occurred')
  .catch(err => console.error(err)); // Error occurred
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


روشهای API یا وعده های نمونه وعده

API های قول هستند فراخوانده شده از یک شیء وعده واقعی و هستند برای رسیدگی به نتیجه یا خطای آن استفاده می شود.

1

  • دست زدن به resolved یا rejected نتیجه یک وعده
  • دو تماس برگشتی اختیاری می گیرد:
    • onFulfilled: هنگامی که وعده است اجرا می شود حل شد
    • onRejected: هنگامی که وعده است اجرا می شود رد شد
  • دستگیره ها وعده تحقق و طرد را می دهند. معمولاً برای زنجیره ای استفاده می شود.
fetch('/api')
.then(response => response.json(), err => console.error(err))
.then(data => console.log(data));
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2.

  • هرگونه رد در زنجیره وعده را کنترل می کند.
  • برابر با . then (تهی ، onrejected).
  • تمیزتر از استفاده از آن با تهی.
fetch('/api')
.then(res => res.json())
.catch(err => console.error('Fetch failed:',
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3.

  • بدون در نظر گرفتن اینکه قول برآورده شده یا رد می شود ، اجرا می شود.
  • اغلب برای پاکسازی استفاده می شود (به عنوان مثال ، بارگذاری اسپینر ، اتصالات DB را ببندید).
  • مقدار یا خطای حل شده را دریافت نمی کند.
setLoading(true);
doTask()
.then(handleSuccess)
.catch(handleError)
.finally(() => setLoading(false));
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


خلاصه

روشهای استاتیک را قول دهید

  • وعده. هنگامی که هر قول برطرف می شود ، حل می شود. فقط در صورت عدم موفقیت همه رد می شود.
  • Promise.All: منتظر است تا همه برطرف شوند. اگر کسی شکست بخورد ، رد می کند.
  • Promise.race: به محض حل و فصل اولین وعده (حل و فصل/رد) حل و فصل می شود.
  • Promise.Allsettled: منتظر است تا همه حل و فصل شوند. وضعیت هر یک (تحقق یافته/رد شده) را می دهد.
  • Promise.Resolve (مقدار): فوراً یک قول حل شده را برمی گرداند.
  • Promise.Reject (دلیل): فوراً یک وعده رد شده را برمی گرداند.

API های وعده

  • . then (): هر دو مورد حل و فصل را با تماس های برگشت پذیر اختیاری انجام می دهد.
  • .catch (): رد را به روشی تمیز جلب می کند.
  • .fiendy (): منطق پاکسازی را پس از حل و فصل وعده اجرا می کند.

نوشته های مشابه

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

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

دکمه بازگشت به بالا