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

در اینجا یک تازه کننده رعد و برق روشن است روشهای استاتیک را قول دهید (.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 (): منطق پاکسازی را پس از حل و فصل وعده اجرا می کند.