Láimhseáil Imeachtaí agus Asincronicity i Node.js

Sa phróiseas maidir le hiarratais Node.js a fhorbairt, tá sé ríthábhachtach tuiscint agus oibriú le láimhseáil imeachtaí agus próiseáil asincrónach. Tá Node.js bunaithe ar shamhail imeacht-tiomáinte agus asincrónach, rud a ligeann do thascanna a chur i gcrích gan fanacht le críochnú. Go deimhin, tá tuiscint agus cur i bhfeidhm ceart ar láimhseáil imeachtaí agus ar phróiseáil asincrónach mar chuid riachtanach d'fheidhmíocht iarratais a bharrfheabhsú.

 

Imeachtaí agus aisghlaonna in Node.js

In Node.js, tá ról ríthábhachtach ag imeachtaí agus aisghlaonna maidir le hoibríochtaí asincrónacha a láimhseáil. Is bealach iad imeachtaí chun gníomhartha nó tarluithe áirithe a tharlaíonn laistigh d’iarratas a láimhseáil agus freagairt dóibh. Ar an láimh eile, is feidhmeanna iad aisghlaonna a chuirtear i gcrích nuair a bhíonn imeacht nó oibríocht ar leith curtha i gcrích.

Soláthraíonn Node.js ailtireacht imeacht-tiomáinte inar féidir le codanna éagsúla den fheidhmchlár imeachtaí a astú agus éisteacht leo. Ligeann sé seo do phróiseáil éifeachtach agus neamh-bhloic oibríochtaí iolracha ag an am céanna.

Úsáidtear aisghlaonna go coitianta in Node.js chun oibríochtaí asincrónacha a láimhseáil. Cuirtear ar aghaidh iad mar argóintí chuig feidhmeanna agus déantar iad a fhorghníomhú nuair a bhíonn an oibríocht críochnaithe. Soláthraíonn aisghlaonna bealach chun na torthaí nó na hearráidí a tharlaíonn le linn tascanna asincrónacha a láimhseáil.

Seo sampla de aisghlao a úsáid in 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);
  }
});

Sa sampla seo, tá feidhm againn ar a dtugtar fetchDataa shamhlaíonn sonraí a fháil ó oibríocht asincrónach (eg, glao API a dhéanamh nó bunachar sonraí a cheistiú). Glacann sé feidhm aisghlao mar argóint.

Taobh istigh den fetchDatafheidhm, úsáidimid setTimeoutan oibríocht asincrónach a insamhail. Tar éis na moille 2 soicind, cruthaímid roinnt sonraí samplacha agus cuirimid ar aghaidh chuig an bhfeidhm aisghlao é mar aon le hearráid (atá socraithe nullsa chás seo).

Lasmuigh den fetchDatafheidhm, tugaimid é agus soláthraímid feidhm aisghlao. Sa aisghlao, déanaimid aon earráidí féideartha a láimhseáil agus na sonraí a fhaightear a phróiseáil. Má tá earráid ann, déanaimid é a logáil chuig an consól. Seachas sin, táimid ag logáil na sonraí.

Is sampla bunúsach é seo de aisghlao a úsáid in Node.js chun oibríochtaí asincrónacha a láimhseáil agus a chinntiú go ndéantar na sonraí a phróiseáil nuair a bhíonn siad ar fáil. I gcásanna sa saol fíor, úsáidtear glaonna ar ais go coitianta chun ceisteanna bunachar sonraí, iarratais API, agus tascanna asincrónacha eile a láimhseáil.

 

Ag baint úsáide as Geallta agus asincréiteach / ag fanacht le asincronicity a láimhseáil

Is cur chuige coitianta é “Ag baint úsáide as Promise agus asincrónach / ag fanacht le láimhseáil oibríochtaí asincrónacha” in Node.js chun tascanna asincrónacha a láimhseáil ar bhealach éasca agus éifeachtach. Is réad JavaScript é Promise a chuidíonn linn oibríochtaí asincrónacha a bhainistiú agus a láimhseáil, agus is comhréir é sioncronú/fanacht a ligeann dúinn cód asincrónach a scríobh ar bhealach cosúil le cód sioncrónach.

Trí úsáid a bhaint as Promise agus assync / ag fanacht, is féidir linn cód asincrónach a scríobh ar bhealach níos éasca agus níos iomasach. Ní gá dúinn feidhmeanna aisghlaoite a úsáid a thuilleadh agus déileáil le hifreann aisghlaoch (feidhmeanna aisghlaoite neadaithe) chun oibríochtaí asincrónacha a láimhseáil. Ina áit sin, is féidir linn an eochairfhocal feithimh a úsáid chun fanacht ar Ghealltanas chun a thoradh a chomhlánú agus a sheoladh ar ais.

Seo sampla d’úsáid Promise agus async/await in Node.js chun oibríochtaí asincrónacha a láimhseáil:

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

Sa sampla seo, úsáidimid an fetchDatafheidhm chun sonraí a fháil ó API (nó aon oibríocht asincrónach) a insamhladh. Tugann an fheidhm seo Gealltanas ar ais, áit a dtugaimid an resolvefheidhm chun na sonraí a sheoladh ar ais.

Lasmuigh den fetchDatafheidhm, úsáidimid try/catchbloc chun earráidí a láimhseáil. San getDatafheidhm, bainimid úsáid as an awaiteochairfhocal chun fanacht leis an nGealltanas chun na sonraí a chomhlánú agus a sheoladh ar ais. Má tá earráid sa Gealltanas, beidh sé caith eisceacht agus láimhseáil againn sa catchbhloc.

Ar deireadh, tugaimid an getDatafheidhm chun an próiseáil asincrónach a thosú. Déanfar an toradh a logáil isteach sa chonsól tar éis don Gealltanas na sonraí a chríochnú agus a sheoladh ar ais.

Trí úsáid a bhaint as Promise agus asincrónach/ag fanacht, beidh ár gcód níos inléite agus níos éasca le tuiscint agus muid ag déileáil le hoibríochtaí asincrónacha. Cabhraíonn sé linn ifreann aisghlaoch a sheachaint agus ligeann sé dúinn cód a scríobh ar bhealach seicheamhach, cosúil le cód sioncrónach a scríobh.

 

Conclúid: Tá dhá ghné ríthábhachtach ag láimhseáil imeachtaí agus próiseáil asincrónach i bhforbairt iarratais Node.js. Trí na coincheapa agus na huirlisí gaolmhara a thuiscint agus a úsáid i gceart, is féidir leat feidhmchláir éifeachtacha, solúbtha agus iontaofa a thógáil ar an ardán Node.js.