Programming TypeScript


funktsiyasi appendAndReadPromise ( yo'l : string , ma'lumotlar : string ) : Va'da < string


Download 1.81 Mb.
bet143/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   139   140   141   142   143   144   145   146   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

funktsiyasi appendAndReadPromise ( yo'l : string , ma'lumotlar : string ) : Va'da < string > {
qaytish appendPromise ( yo'l , ma'lumotlar ). keyin (() => readPromise ( yo'l ))
. tutish ( xato => konsol . xato ( xato ))
}
Bu erda qanday qilib qayta qo'ng'iroq qilish piramidasi yo'qligiga e'tibor bering - biz nima qilishni xohlayotganimizni yagona, tushunarli asinxron vazifalar zanjiriga samarali tarzda chiziqlashtirdik. Biri muvaffaqiyatga erishsa, keyingisi yuguradi; agar u muvaffaqiyatsiz bo'lsa, biz catch bandiga o'tamiz. Qayta qo'ng'iroqqa asoslangan API bilan bu quyidagicha ko'rinishi mumkin:
funktsiyasi appendAndRead ( yo'l : string , ma'lumotlar : string
cb : ( xato : Xato | null , natija : string | null ) => bekor
) {
appendFile ( yo'l , ma'lumotlar , xato => {
agar ( xato ) {
qaytish cb ( xato , null )
}
readFile ( yo'l , ( xato , natija ) => {
agar ( xato ) {
qaytish cb ( xato , null )
}
cb ( null , natija )
})
})
}
, buni amalga oshirishga imkon beruvchi Promise API- ni yarataylik . Va'da kamtarlikdan boshlanadi:
sinf Va'da { }
Yangi Promise biz ijrochi deb ataydigan funktsiyani oladi , Promise amalga oshirilishi ikkita argument, hal qilish funktsiyasi va rad etish funksiyasi bilan chaqiradi :
Va'dalar bilan aqlni tiklash
turi Ijrochi = ( yechish : Funktsiya , rad etish : Funktsiya ) => bekor
sinf va'da {
konstruktor ( f : Ijrochi ) {} }
Ishni qanday hal qilish va rad etish kerak? Keling, fs.readFile kabi qayta qo'ng'iroqqa asoslangan NodeJS API-ni Promise-ga asoslangan API- da qanday qilib qo'lda o'rashimiz haqida o'ylash orqali buni namoyish qilaylik . Biz NodeJS-ning o'rnatilgan fs.readFile API-dan quyidagi tarzda foydalanamiz:
{ readFile } faylini import qiling "fs"
readFile ( yo'l , ( xato , natija ) => {
// ...
})
Ushbu APIni bizning Promise dasturimizga o'rab, u endi shunday ko'rinadi:
{ readFile } faylini import qiling "fs"

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   139   140   141   142   143   144   145   146   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling