Node.js ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਵਿਕਸਤ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ, ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਅਤੇ ਅਸਿੰਕ੍ਰੋਨਸ ਪ੍ਰੋਸੈਸਿੰਗ ਨੂੰ ਸਮਝਣਾ ਅਤੇ ਕੰਮ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। Node.js ਇੱਕ ਇਵੈਂਟ-ਸੰਚਾਲਿਤ ਅਤੇ ਅਸਿੰਕ੍ਰੋਨਸ ਮਾਡਲ 'ਤੇ ਬਣਾਇਆ ਗਿਆ ਹੈ, ਜਿਸ ਨਾਲ ਕਾਰਜਾਂ ਨੂੰ ਪੂਰਾ ਹੋਣ ਦੀ ਉਡੀਕ ਕੀਤੇ ਬਿਨਾਂ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। ਅਸਲ ਵਿੱਚ, ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਅਤੇ ਅਸਿੰਕ੍ਰੋਨਸ ਪ੍ਰੋਸੈਸਿੰਗ ਨੂੰ ਸਮਝਣਾ ਅਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਕਰਨਾ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣ ਦਾ ਇੱਕ ਜ਼ਰੂਰੀ ਹਿੱਸਾ ਹੈ।
Node.js ਵਿੱਚ ਇਵੈਂਟਸ ਅਤੇ callback ਐੱਸ
Node.js ਵਿੱਚ, ਘਟਨਾਵਾਂ ਅਤੇ callback s ਅਸਿੰਕਰੋਨਸ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਸੰਭਾਲਣ ਵਿੱਚ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦੇ ਹਨ। ਇਵੈਂਟਸ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਅੰਦਰ ਵਾਪਰਨ ਵਾਲੀਆਂ ਕੁਝ ਕਾਰਵਾਈਆਂ ਜਾਂ ਘਟਨਾਵਾਂ ਨੂੰ ਸੰਭਾਲਣ ਅਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰਨ ਦਾ ਇੱਕ ਤਰੀਕਾ ਹਨ। Callback s, ਦੂਜੇ ਪਾਸੇ, ਉਹ ਫੰਕਸ਼ਨ ਹਨ ਜੋ ਕਿਸੇ ਖਾਸ ਘਟਨਾ ਜਾਂ ਓਪਰੇਸ਼ਨ ਦੇ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ।
Node.js ਇੱਕ ਇਵੈਂਟ-ਸੰਚਾਲਿਤ ਆਰਕੀਟੈਕਚਰ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਵੱਖ-ਵੱਖ ਹਿੱਸੇ ਇਵੈਂਟਾਂ ਨੂੰ ਛੱਡ ਸਕਦੇ ਹਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਸੁਣ ਸਕਦੇ ਹਨ। ਇਹ ਇੱਕੋ ਸਮੇਂ ਕਈ ਕਾਰਜਾਂ ਦੀ ਕੁਸ਼ਲ ਅਤੇ ਗੈਰ-ਬਲੌਕਿੰਗ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
Callback s ਦੀ ਵਰਤੋਂ ਆਮ ਤੌਰ 'ਤੇ ਅਸਿੰਕ੍ਰੋਨਸ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ Node.js ਵਿੱਚ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਉਹਨਾਂ ਨੂੰ ਫੰਕਸ਼ਨਾਂ ਲਈ ਆਰਗੂਮੈਂਟ ਵਜੋਂ ਪਾਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਓਪਰੇਸ਼ਨ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ। Callback s ਅਸਿੰਕਰੋਨਸ ਕਾਰਜਾਂ ਦੌਰਾਨ ਹੋਣ ਵਾਲੇ ਨਤੀਜਿਆਂ ਜਾਂ ਗਲਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਦਾ ਤਰੀਕਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
ਇੱਥੇ callback Node.js ਵਿੱਚ ਇੱਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਾ ਇੱਕ ਉਦਾਹਰਨ ਹੈ:
// A function that takes a callback
function fetchData(callback) {
// Simulate fetching data from an asynchronous operation
setTimeout(() => {
const data = { name: 'John', age: 30 };
callback(null, data); // Pass the data to the callback
}, 2000); // Simulate a 2-second delay
}
// Call the fetchData function and provide a callback
fetchData((error, data) => {
if(error) {
console.error('Error:', error);
} else {
console.log('Data:', data);
}
});
ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਸਾਡੇ ਕੋਲ ਇੱਕ ਫੰਕਸ਼ਨ ਹੈ fetchData
ਜਿਸਨੂੰ ਇੱਕ ਅਸਿੰਕ੍ਰੋਨਸ ਓਪਰੇਸ਼ਨ(ਉਦਾਹਰਨ ਲਈ, ਇੱਕ API ਕਾਲ ਕਰਨਾ ਜਾਂ ਇੱਕ ਡੇਟਾਬੇਸ ਦੀ ਪੁੱਛਗਿੱਛ ਕਰਨਾ) ਤੋਂ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਨਕਲ ਕਰਦਾ ਹੈ। ਇਹ callback ਇੱਕ ਆਰਗੂਮੈਂਟ ਵਜੋਂ ਇੱਕ ਫੰਕਸ਼ਨ ਲੈਂਦਾ ਹੈ।
ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ fetchData
, ਅਸੀਂ setTimeout
ਅਸਿੰਕ੍ਰੋਨਸ ਓਪਰੇਸ਼ਨ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਵਰਤਦੇ ਹਾਂ। callback 2-ਸਕਿੰਟ ਦੀ ਦੇਰੀ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਕੁਝ ਨਮੂਨਾ ਡੇਟਾ ਬਣਾਉਂਦੇ ਹਾਂ ਅਤੇ ਇਸਨੂੰ ਇੱਕ ਗਲਤੀ ਦੇ ਨਾਲ ਫੰਕਸ਼ਨ ਵਿੱਚ ਪਾਸ ਕਰਦੇ ਹਾਂ(ਜੋ null
ਇਸ ਕੇਸ ਵਿੱਚ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ)।
ਫੰਕਸ਼ਨ ਦੇ ਬਾਹਰ fetchData
, ਅਸੀਂ ਇਸਨੂੰ ਕਾਲ ਕਰਦੇ ਹਾਂ ਅਤੇ ਇੱਕ callback ਫੰਕਸ਼ਨ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਾਂ। ਵਿੱਚ callback, ਅਸੀਂ ਕਿਸੇ ਵੀ ਸੰਭਾਵੀ ਤਰੁੱਟੀ ਨੂੰ ਸੰਭਾਲਦੇ ਹਾਂ ਅਤੇ ਪ੍ਰਾਪਤ ਕੀਤੇ ਡੇਟਾ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਦੇ ਹਾਂ। ਜੇਕਰ ਕੋਈ ਗਲਤੀ ਹੈ, ਤਾਂ ਅਸੀਂ ਇਸਨੂੰ ਕੰਸੋਲ 'ਤੇ ਲੌਗ ਕਰਦੇ ਹਾਂ। ਨਹੀਂ ਤਾਂ, ਅਸੀਂ ਡੇਟਾ ਨੂੰ ਲੌਗ ਕਰਦੇ ਹਾਂ।
ਇਹ ਅਸਿੰਕ੍ਰੋਨਸ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਸੰਭਾਲਣ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ Node.js ਵਿੱਚ ਇੱਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇੱਕ ਬੁਨਿਆਦੀ ਉਦਾਹਰਨ ਹੈ callback ਇੱਕ ਵਾਰ ਉਪਲਬਧ ਹੋਣ 'ਤੇ ਡੇਟਾ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸਲ-ਸੰਸਾਰ ਦੇ ਦ੍ਰਿਸ਼ਾਂ ਵਿੱਚ, callback s ਦੀ ਵਰਤੋਂ ਆਮ ਤੌਰ 'ਤੇ ਡਾਟਾਬੇਸ ਪੁੱਛਗਿੱਛਾਂ, API ਬੇਨਤੀਆਂ, ਅਤੇ ਹੋਰ ਅਸਿੰਕ੍ਰੋਨਸ ਕਾਰਜਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
s ਦੀ ਵਰਤੋਂ ਕਰਨਾ Promise ਅਤੇ ਅਸਿੰਕ੍ਰੋਨੀਸਿਟੀ ਨੂੰ ਸੰਭਾਲਣ ਲਈ async/await
Node.js ਵਿੱਚ ਅਸਿੰਕ੍ਰੋਨਸ ਕਾਰਜਾਂ ਨੂੰ ਆਸਾਨ ਅਤੇ ਕੁਸ਼ਲ ਤਰੀਕੇ ਨਾਲ ਹੈਂਡਲ ਕਰਨ ਲਈ "ਅਸਿੰਕ੍ਰੋਨਸ ਕਾਰਜਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ Promise ਅਤੇ ਹੈਂਡਲ ਕਰਨਾ" ਇੱਕ ਆਮ ਪਹੁੰਚ ਹੈ। ਇੱਕ ਵਸਤੂ ਹੈ ਜੋ ਅਸਿੰਕਰੋਨਸ ਓਪਰੇਸ਼ਨਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਅਤੇ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਸਾਡੀ ਮਦਦ ਕਰਦੀ ਹੈ, ਜਦੋਂ ਕਿ ਇੱਕ ਸਿੰਟੈਕਸ ਹੈ ਜੋ ਸਾਨੂੰ ਸਮਕਾਲੀ ਕੋਡ ਦੇ ਸਮਾਨ ਤਰੀਕੇ ਨਾਲ ਅਸਿੰਕ੍ਰੋਨਸ ਕੋਡ ਲਿਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। async/await Promise JavaScript async/await
Promise ਅਤੇ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਅਸੀਂ ਅਸਿੰਕ੍ਰੋਨਸ ਕੋਡ ਨੂੰ ਹੋਰ ਆਸਾਨੀ ਨਾਲ ਅਤੇ ਅਨੁਭਵੀ ਢੰਗ ਨਾਲ ਲਿਖ ਸਕਦੇ ਹਾਂ। ਅਸਿੰਕ੍ਰੋਨਸ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਸਾਨੂੰ ਹੁਣ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਅਤੇ ਨਰਕ(ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ) ਨਾਲ ਨਜਿੱਠਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ । ਇਸ ਦੀ ਬਜਾਏ, ਅਸੀਂ a ਦੇ ਪੂਰਾ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰਨ ਅਤੇ ਇਸਦੇ ਨਤੀਜੇ ਨੂੰ ਵਾਪਸ ਕਰਨ ਲਈ await ਕੀਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ । async/await callback callback callback Promise
ਇੱਥੇ ਅਸਿੰਕ੍ਰੋਨਸ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ Node.js ਦੀ ਵਰਤੋਂ ਕਰਨ Promise ਅਤੇ ਇਸ ਵਿੱਚ ਵਰਤਣ ਦੀ ਇੱਕ ਉਦਾਹਰਨ ਹੈ: async/await
// A mock function to fetch data from an API
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const data = { name: 'John', age: 30 };
resolve(data); // Return data within the Promise
}, 2000);
});
}
// Using async/await to handle asynchronous operations
async function getData() {
try {
const data = await fetchData(); // Wait for the Promise to complete and return the data
console.log('Data:', data);
} catch(error) {
console.error('Error:', error);
}
}
// Call the getData function
getData();
ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਅਸੀਂ fetchData
ਇੱਕ API(ਜਾਂ ਕਿਸੇ ਅਸਿੰਕ੍ਰੋਨਸ ਓਪਰੇਸ਼ਨ) ਤੋਂ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। ਇਹ ਫੰਕਸ਼ਨ a ਵਾਪਸ ਕਰਦਾ ਹੈ Promise, ਜਿੱਥੇ ਅਸੀਂ resolve
ਡੇਟਾ ਨੂੰ ਵਾਪਸ ਕਰਨ ਲਈ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਦੇ ਹਾਂ।
ਫੰਕਸ਼ਨ ਦੇ ਬਾਹਰ fetchData
, ਅਸੀਂ try/catch
ਗਲਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਇੱਕ ਬਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। ਫੰਕਸ਼ਨ ਵਿੱਚ getData
, ਅਸੀਂ ਡੇਟਾ ਨੂੰ ਪੂਰਾ ਕਰਨ ਅਤੇ ਵਾਪਸ ਕਰਨ ਦੀ await
ਉਡੀਕ ਕਰਨ ਲਈ ਕੀਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। Promise ਜੇਕਰ ਵਿੱਚ ਕੋਈ ਗਲਤੀ ਹੈ Promise, ਤਾਂ ਇਹ ਇੱਕ ਅਪਵਾਦ ਸੁੱਟ ਦੇਵੇਗਾ ਅਤੇ ਅਸੀਂ ਇਸਨੂੰ catch
ਬਲਾਕ ਵਿੱਚ ਸੰਭਾਲਦੇ ਹਾਂ।
ਅੰਤ ਵਿੱਚ, ਅਸੀਂ getData
ਅਸਿੰਕ੍ਰੋਨਸ ਪ੍ਰੋਸੈਸਿੰਗ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਦੇ ਹਾਂ। ਨਤੀਜਾ Promise ਪੂਰਾ ਹੋਣ ਅਤੇ ਡਾਟਾ ਵਾਪਸ ਕਰਨ ਤੋਂ ਬਾਅਦ ਕੰਸੋਲ 'ਤੇ ਲੌਗਇਨ ਕੀਤਾ ਜਾਵੇਗਾ।
ਅਸਿੰਕਰੋਨਸ ਓਪਰੇਸ਼ਨਾਂ ਨਾਲ ਨਜਿੱਠਣ ਵੇਲੇ ਸਾਡੇ ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰਨਾ Promise ਅਤੇ ਹੋਰ ਪੜ੍ਹਨਯੋਗ ਅਤੇ ਸਮਝਣ ਵਿੱਚ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਸਾਨੂੰ ਨਰਕ ਤੋਂ ਬਚਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਅਤੇ ਸਾਨੂੰ ਕ੍ਰਮਵਾਰ ਕੋਡ ਲਿਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਸਮਕਾਲੀ ਕੋਡ ਲਿਖਣਾ। async/await callback
ਸਿੱਟਾ: ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਅਤੇ ਅਸਿੰਕ੍ਰੋਨਸ ਪ੍ਰੋਸੈਸਿੰਗ Node.js ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਵਿਕਾਸ ਵਿੱਚ ਦੋ ਮਹੱਤਵਪੂਰਨ ਪਹਿਲੂ ਹਨ। ਸੰਬੰਧਿਤ ਸੰਕਲਪਾਂ ਅਤੇ ਸਾਧਨਾਂ ਨੂੰ ਸਮਝਣ ਅਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ Node.js ਪਲੇਟਫਾਰਮ 'ਤੇ ਕੁਸ਼ਲ, ਲਚਕਦਾਰ ਅਤੇ ਭਰੋਸੇਮੰਦ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾ ਸਕਦੇ ਹੋ।