CCA Prep

Урок 6.1Урок 20 з 24

Вибір реалізації в Node.js

Given a scenario and requirements, infer which Node.js implementation is a good solution.

Вибір реалізації в Node.jsЩо це за робота?Один асинхроннийрезультатПроміс абоasync/awaitfs/promises ·util.promisifyВеликі абонескінченні даніСтримcreateReadStream ·pipelineБагато слухачів,багато разівEventEmitteron · once · emitВажкі обчислення наCPUworker_threadsцикл подійлишається вільним

Головне

  1. 1Node.js виконує ваш JavaScript в одному головному потоці. Операції I/O Node.js делегує, а їхні колбеки пізніше запускає цикл подій.
  2. 2Будь-яка синхронна й повільна операція, як-от readFileSync в обробнику запиту чи важкий цикл, зупиняє всі інші запити, доки не завершиться.
  3. 3Для великих або нескінченних даних використовуйте стрим: він обробляє дані порціями, тож споживання пам'яті не зростає. Віддавайте перевагу stream.pipeline — він передає помилки далі.
  4. 4EventEmitter викликає слухачів синхронно, у порядку їх додавання. Подія error без слухача викидається як помилка.
  5. 5process.nextTick виконується раніше за колбеки промісів; setImmediate — на наступній ітерації циклу подій. Важкі для CPU обчислення переносьте у worker_threads.
Що перевіряє іспит із цієї теми

Формулювання з програми іспиту (англійською).

  • 6.1.K1Node.js as a single-threaded event-driven runtime; non-blocking I/O
  • 6.1.K2Streams, EventEmitter, and when to use callbacks, promises or streams
  • 6.1.S1Choose the Node.js implementation that meets a requirement

Закріпіть тему

Дайте відповідь на запитання за сценаріями з цієї теми. До кожного варіанта є розбір.

Тренування 6.1 · 12 запитань