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: सर्व टास्क पूर्ण करते.
