Nangani Acara lan Asynchronicity ing Node.js

Ing proses ngembangake aplikasi Node.js, pangerten lan nggarap penanganan acara lan pangolahan asinkron penting. Node.js dibangun ing model sing didorong acara lan ora sinkron, ngidini tugas bisa dieksekusi tanpa ngenteni rampung. Nyatane, ngerti lan ngetrapake penanganan acara lan pangolahan asinkron kanthi bener minangka bagean penting kanggo ngoptimalake kinerja aplikasi.

 

Acara lan callback ing Node.js

Ing Node.js, acara lan callback nduweni peran penting kanggo nangani operasi sing ora sinkron. Acara minangka cara kanggo nangani lan nanggapi tumindak utawa kedadeyan tartamtu sing kedadeyan ing aplikasi. Callback, ing tangan liyane, minangka fungsi sing dieksekusi sawise acara utawa operasi tartamtu rampung.

Node.js nyedhiyakake arsitektur sing didorong acara ing ngendi bagean aplikasi sing beda-beda bisa ngetokake acara lan ngrungokake. Iki ngidini pangolahan sing efisien lan ora ngalangi sawetara operasi bebarengan.

Callback umume digunakake ing Node.js kanggo nangani operasi asinkron. Iki diterusake minangka argumen kanggo fungsi lan dieksekusi sawise operasi rampung. Callback nyedhiyakake cara kanggo nangani asil utawa kesalahan sing kedadeyan sajrone tugas sing ora sinkron.

Iki conto nggunakake callback ing 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);
  }
});

Ing conto iki, kita duwe fungsi sing disebut fetchDatasimulasi njupuk data saka operasi bedo (contone, nelpon API utawa takon database). Butuh fungsi callback minangka argumen.

Ing njero fungsi kasebut fetchData, digunakake setTimeoutkanggo simulasi operasi asinkron. Sawise wektu tundha 2 detik, kita nggawe sawetara data sampel lan ngirim menyang fungsi callback bebarengan karo kesalahan (sing disetel nulling kasus iki).

Ing njaba fetchDatafungsi kasebut, kita nelpon lan menehi fungsi callback. Ing callback, kita nangani kesalahan potensial lan ngolah data sing ditampa. Yen ana kesalahan, kita log menyang console. Yen ora, kita log data.

Iki minangka conto dhasar nggunakake callback ing Node.js kanggo nangani operasi sing ora sinkron lan mesthekake yen data wis diproses yen wis kasedhiya. Ing skenario nyata, callback biasane digunakake kanggo nangani pitakon database, panjalukan API, lan tugas asinkron liyane.

 

Nggunakake Janji lan async / ngenteni kanggo nangani asinkronisitas

"Nganggo Janji lan async / ngenteni kanggo nangani operasi bedo" iku pendekatan umum ing Node.js kanggo nangani tugas bedo ing cara sing gampang lan efisien. Janji minangka obyek JavaScript sing mbantu kita ngatur lan nangani operasi asinkron, dene async/await minangka sintaks sing ngidini kita nulis kode asinkron kanthi cara sing padha karo kode sinkron.

Kanthi nggunakake Janji lan async / ngenteni, kita bisa nulis kode asinkron luwih gampang lan intuisi. Kita ora perlu maneh nggunakake fungsi callback lan ngatasi neraka callback (fungsi callback nested) kanggo nangani operasi bedo. Nanging, kita bisa nggunakake tembung kunci ngenteni kanggo ngenteni Janji rampung lan ngasilake asile.

Iki minangka conto nggunakake Janji lan async / ngenteni ing Node.js kanggo nangani operasi bedo:

// 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();

Ing conto iki, kita nggunakake fetchDatafungsi kanggo simulasi njupuk data saka API (utawa operasi asynchronous). Fungsi iki ngasilake Janji, ing ngendi kita nelpon resolvefungsi kasebut kanggo ngasilake data.

Ing njaba fungsi kasebut fetchData, kita nggunakake try/catchblok kanggo ngatasi kesalahan. Ing getDatafungsi kasebut, kita nggunakake awaittembung kunci kanggo ngenteni Janji rampung lan ngasilake data. Yen ana kesalahan ing Janji, bakal mbuwang pengecualian lan kita nangani ing catchblok kasebut.

Pungkasan, kita nelpon getDatafungsi kanggo miwiti pangolahan asinkron. Asil bakal mlebu menyang konsol sawise Janji rampung lan ngasilake data.

Nggunakake Janji lan async / ngenteni nggawe kode kita luwih bisa diwaca lan luwih gampang dingerteni nalika ngatasi operasi asinkron. Iki mbantu supaya ora nelpon maneh neraka lan ngidini kita nulis kode kanthi urutan, padha karo nulis kode sinkron.

 

Kesimpulan: Penanganan acara lan pangolahan asinkron minangka rong aspek penting ing pangembangan aplikasi Node.js. Kanthi mangerteni lan nggunakake konsep lan alat sing gegandhengan kanthi bener, sampeyan bisa mbangun aplikasi sing efisien, fleksibel, lan dipercaya ing platform Node.js.