𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀

ഒരു 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: എല്ലാ ടാസ്ക്കുകളും പൂർത്തിയാക്കുന്നു.

Source: https://dev.to/malik786/javascript-promises-2hn4