JavaScript Promises

Promise हे एका asynchronous टास्कचे निकाल दर्शवते.

तुम्ही API calls, database queries आणि file reading साठी Promises वापरता.

Promise च्या तीन अवस्था (states) असतात:

  • Pending: टास्क अजूनही सुरू आहे.
  • Fulfilled: टास्क यशस्वीरित्या पूर्ण झाला आहे.
  • Rejected: टास्क त्रुटीसह (error) अयशस्वी झाला आहे.

याची रचना अशी दिसते:

const promise = new Promise((resolve, reject) => {
  // Executor लगेच चालते
});

तुम्ही या methods द्वारे निकालांचे व्यवस्थापन करता:

  • .then(): जेव्हा promise यशस्वी होतो तेव्हा चालते.
  • .catch(): जेव्हा promise अयशस्वी होतो तेव्हा चालते.
  • .finally(): निकालाचा कोणताही परिणाम असो, टास्क संपल्यावर ही चालते.

लक्षात ठेवण्यासारखे महत्त्वाचे नियम:

  • पहिला निकाल (outcome) ग्राह्य धरला जातो. जर तुम्ही आधी resolve() आणि नंतर reject() कॉल केले, तर resolve चा निकाल ग्राह्य धरला जातो.
  • Executor function synchronous पद्धतीने चालते.
  • async आणि await वापरल्यामुळे तुमचे कोड .then() वापरण्यापेक्षा वाचायला सोपे होतात.

एकापेक्षा जास्त promises हाताळणे:

  • Promise.all(): हे 'fail-fast' दृष्टिकोन वापरते. जर एक promise अयशस्वी झाला, तर संपूर्ण समूह अयशस्वी होतो.
  • Promise.allSettled(): हे प्रत्येक promise पूर्ण होण्याची वाट पाहते. काही टास्क अयशस्वी झाले तरीही हे निकाल परत करते.

सारांश:

  • Promise: एक asynchronous निकाल हाताळणारा (result handler).
  • resolve: यश दर्शवते.
  • reject: अपयश दर्शवते.
  • async/await: Promises लिहिण्याची अधिक सुटसुटीत पद्धत.
  • Promise.all: पहिल्या त्रुटीवर थांबते.
  • Promise.allSettled: सर्व टास्क पूर्ण करते.

स्रोत: https://dev.to/malik786/javascript-promises-2hn4