Obsługa zdarzeń i asynchroniczności w Node.js

W procesie tworzenia aplikacji Node.js kluczowe znaczenie ma zrozumienie i pracę z obsługą i przetwarzaniem asynchronicznym. Node.js jest tworzony na sterowanym zdarzeniami i asynchronicznym modelu, dzięki czemu zadania mogą być obserwowane bez czekania na zdarzenie. W rzeczywistości zrozumienie i prawidłowy sposób obsługi zdarzeń i oceny asynchronicznej jest działaniem optymalizacji wydajności aplikacji.

 

Zdarzenia i wywołania zwrotne w Node.js

W Node.js zdarzenia i wywołania zwrotne kluczowego działania w operacjach asynchronicznych. Zdarzenia na sposób obsługi i reakcji na określone działania lub zdarzenia, które mają miejsce w aplikacji. Z drugiej strony wywołania zwrotu do funkcji po wystąpieniu zdarzenia lub operacji.

Node.js zapewnia architekturę sterowanych zdarzeń, w których różne części aplikacji mogą emitować zdarzenia i nasłuchiwać ich. Pozwala to na i nieblokujące działanie wielu operacji.

Wywołania zwrotne są używane używane w Node.js do obsługi operacji asynchronicznych. Są one istotne jako argumenty do funkcji i wyróżnienia po operacji. Wywołania zwrotów sposobu obsługi wyników lub błędów, które występują podczas zadań asynchronicznych.

Oto przykład użycia wywołania zwrotnego w 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);
  }
});

W tym celu mamy zastosowanie o nazwie fetchData, która symuluje pobieranie danych z operacji asynchronicznej (np. wywołanie API lub dodanie zapytania do bazy danych). Jako argument wykorzystano wywołania zwrotnego.

Wewnątrz fetchDatafunkcji używanych setTimeoutdo programu operacji asynchronicznej. Po 2-sekundowym stworzeniu wzorumy przykładowe dane i przekazujemy je do funkcji wywołania zwrotnego wraz z konkretnym (który nullw tym przypadku jest nadawany).

Oprócz tego, że fetchDataużywamy ją i udostępniamy funkcję reakcji zwrotnego. W odpowiedzi zwrotnym obsługującym my nieprawidłowe błędy i wysyłamy otrzymane dane. Jeśli wystąpi błąd, logujemy się do konsoli. W dotychczasowym czasie zarejestrowaliśmy dane.

Jest to podstawowy przykład użycia wywołania gdynia zwrotu w Node.js do obsługi operacji asynchronicznych i zapewnienia, że ​​​​dane wykonania zostały przetworzone, tylko będą dostępne. W rzeczywistych scenariuszach wywołania zwrotne są używane do obsługi zapytań do baz danych, proszeń API i innych zadań asynchronicznych.

 

Używanie funkcji i async/await do obsługi asynchroniczności

„Używanie Promise i async/await do obsługi operacji asynchronicznych” do powszechnego podejścia w Node.js do obsługi zadań asynchronicznych w sposób i sposób. Obietnica dla obiektu JavaScript, który pomaga nam na stałe i zachowanie operacji asynchronicznych, podczas gdy async/oczekiwanie na składnię, która pozwala nam pisać kod asynchroniczny w sposobie działania jak kod synchroniczny.

Używając Promise i async/await, możemy ułatwić i intuicyjnie pisać kod asynchroniczny. Nie trzeba już funkcji funkcji wywołania zwrotu i później sobie z piekielnym wywołaniem zwrotnym (zagnieżdżone funkcje wywołania zwrotnego), aby włączyć operacje asynchroniczne. Zamiast tego możemy użyć słowa kluczowego wait, aby użyć oprogramowania na potrzeby użycia i jego wyniku.

Oto przykład użycia Promise i async/await w Node.js do obsługi operacji asynchronicznych:

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

W tym celu wykorzystania tej fetchDatafunkcji do przekazywania i pobierania danych z interfejsu API (lub operatora operacji asynchronicznej). Ta funkcja rozpoznaje Obiet, w której dokonamy resolveustalenia w celu zwrócenia danych.

Poza tym, że fetchDatablokują try/catchobsługę błędów. W getDatafunkcjach używanych awaitsłowa kluczowego, aby zobaczyć na podstawie tworzenia i zwrócenia danych. Jeśli w Obietnicy wystąpi błąd, rzuci wyjątek i zajmiemy się nim w catchbloku.

Na końcu postawiliśmy getData, aby rozpocząć przetwarzanie asynchroniczne. Wynik zostanie zarejestrowany w konsoli po obliczeniu i zwróceniu danych.

Używanie Promise i async/await sprawia, że ​​nasz kod jest szybszy i łatwiejszy do postępowania w przypadku operacji asynchronicznych. Pomaga nam w pomocy piekła wywołań zwrotnych i pozwala nam pisać kod w sposób sekwencyjny, podobnie jak pisanie kodu synchronicznego.

 

Wniosek: Obsługa zdarzeń i rozpatrywanie asynchroniczne to dwa kluczowe aspekty tworzenia aplikacji Node.js. Dzięki zrozumieniu i prawidłowemu opracowaniu koncepcji i narzędzi, które możesz wykorzystać, możesz wykorzystać i zastosować aplikację Node.js.