createAsyncThunk-ի կիրառման օգուտները Redux-ում
Նախորդ դասին մենք օգտագործեցինք
createAsyncThunk ֆունկցիան RTK-ից, որպեսզի
գրենք մեր առաջին thunk-ը։ Այս
դասին ես կցանկանայի մի փոքր կենտրոնանալ
այս ֆունկցիայի օգտակարության վրա հարցումներ
կատարելիս։
Ընդհանրապես, տվյալներ ստանալու տրամաբանությունը
fetch մեթոդով Redux-ում բավականին կաղապարային է թվում։
Եվ, համապատասխանաբար, հարցման կարգավիճակը ուղարկելու համար
thunk-ում մեզ անհրաժեշտ կլինի ստեղծել առնվազն երեք
action (type և payload-ով)։ Առաջինը
պետք է ուղարկվի հարցումը սկսելիս,
երկրորդը՝ հարցման հաջող ավարտին և
երրորդը՝ ձախողման դեպքում։ Այնուհետև դրանք կարող են ուղարկվել
dispatch-ի միջոցով thunk-ի կոդում, օրինակ
try-catch բլոկներում։ Արդյունքում նման կոդ
կարող է թվալ բավականին ծանր և անհարմար
(բավական է նայել փաստաթղթերին)։ Յուրաքանչյուր action
կարող է ունենալ իր action creator-ը։
Բացի այդ, անհնար է խառնել դրանց ուղարկման
հաջորդականությունը և հատկապես հենց action-ները։ Իհարկե,
սա չի նշանակում, որ դա բացարձակապես անհրաժեշտ է, բայց դա լայն
տարածված պրակտիկա է հարցումներ կատարելիս։
Բարեբախտաբար, մենք այլևս կարիք չունենք այդ ամենը անել
ձեռքով - այժմ դա կանի createAsyncThunk ֆունկցիան
և կգեներացնի thunk, որն կուղարկի այդ բոլոր action-ները
ավտոմատ կերպով։ Մեզ միայն պետք է փոխանցել
createAsyncThunk-ին callback, որն կկատարի
ասինխրոն կանչ և կվերադարձնի պրոմիս
արդյունքով։ Ինչը մենք արեցինք
նախորդ դասին։