𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀
ഒരു asynchronous ടാസ്കിന്റെ ഫലത്തെയാണ് ഒരു Promise പ്രതിനിധീകരിക്കുന്നത്.
API കോളുകൾ, ഡാറ്റാബേസ് ക്വറികൾ, ഫയൽ റീഡിംഗ് എന്നിവയ്ക്കായി നിങ്ങൾ Promises ഉപയോഗിക്കുന്നു.
ഒരു Promise-ന് മൂന്ന് അവസ്ഥകളുണ്ട് (states):
- Pending: ടാസ്ക് ഇപ്പോഴും നടന്നുകൊണ്ടിരിക്കുന്നു.
- Fulfilled: ടാസ്ക് വിജയകരമായി പൂർത്തിയായി.
- Rejected: ഒരു പിശക് കാരണം ടാസ്ക് പരാജയപ്പെട്ടു.
ഇതിന്റെ ഘടന ഇപ്രകാരമാണ്:
const promise = new Promise((resolve, reject) => { // The executor runs immediately });
ഈ മെത്തേഡുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഫലങ്ങൾ കൈകാര്യം ചെയ്യാം:
- .then(): പ്രോമിസ് വിജയിക്കുമ്പോൾ പ്രവർത്തിക്കുന്നു.
- .catch(): പ്രോമിസ് പരാജയപ്പെടുമ്പോൾ പ്രവർത്തിക്കുന്നു.
- .finally(): ഫലം എന്തുതന്നെയായാലും ടാസ്ക് അവസാനിക്കുമ്പോൾ പ്രവർത്തിക്കുന്നു.
ഓർത്തിരിക്കേണ്ട പ്രധാന നിയമങ്ങൾ:
- ആദ്യത്തെ ഫലമാണ് നിലനിൽക്കുക. നിങ്ങൾ ആദ്യം resolve() ഉം പിന്നീട് reject() ഉം വിളിച്ചാൽ, resolve ആണ് വിജയിക്കുക.
- Executor function സിൻക്രണസ് (synchronously) ആയിട്ടാണ് പ്രവർത്തിക്കുന്നത്.
- .then() ഉപയോഗിക്കുന്നതിനേക്കാൾ കോഡ് എളുപ്പത്തിൽ വായിക്കാൻ async, await എന്നിവ ഉപയോഗിക്കുന്നത് സഹായിക്കുന്നു.
ഒന്നിലധികം പ്രോമിസുകൾ കൈകാര്യം ചെയ്യുമ്പോൾ:
- Promise.all(): ഇത് 'fail-fast' രീതിയാണ് പിന്തുടരുന്നത്. ഒരു പ്രോമിസ് പരാജയപ്പെട്ടാൽ, ആ ഗ്രൂപ്പിലെ എല്ലാ പ്രോമിസുകളും പരാജയപ്പെട്ടതായി കണക്കാക്കും.
- Promise.allSettled(): ഇത് എല്ലാ പ്രോമിസുകളും പൂർത്തിയാകുന്നത് വരെ കാത്തിരിക്കുന്നു. ചില ടാസ്ക്കുകൾ പരാജയപ്പെട്ടാലും ഇത് ഫലങ്ങൾ നൽകുന്നു.
സംഗ്രഹം:
- Promise: ഒരു asynchronous റിസൾട്ട് ഹാൻഡ്ലർ.
- resolve: വിജയം സൂചിപ്പിക്കുന്നു.
- reject: പരാജയം സൂചിപ്പിക്കുന്നു.
- async/await: പ്രോമിസുകൾ എഴുതാനുള്ള കൂടുതൽ വ്യക്തമായ രീതി.
- Promise.all: ആദ്യത്തെ പിശകിൽ തന്നെ നിർത്തുന്നു.
- Promise.allSettled: എല്ലാ ടാസ്ക്കുകളും പൂർത്തിയാക്കുന്നു.
