Поток является записываемым

JavaScriptJavaScriptBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы изучим, как проверить, является ли заданный аргумент записываемым потоком в JavaScript. Мы будем использовать функцию, которая проверяет, отличается ли значение от null, имеет ли свойство pipe типа function и также имеет ли свойства _write и _writableState типа function и object соответственно. В ходе этого практического занятия мы лучше освоим работу с потоками в JavaScript.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation") subgraph Lab Skills javascript/variables -.-> lab-28450{{"Поток является записываемым"}} javascript/data_types -.-> lab-28450{{"Поток является записываемым"}} javascript/arith_ops -.-> lab-28450{{"Поток является записываемым"}} javascript/comp_ops -.-> lab-28450{{"Поток является записываемым"}} javascript/obj_manip -.-> lab-28450{{"Поток является записываемым"}} end

Проверка, является ли поток записываемым

Для проверки, является ли поток записываемым, откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода. Затем следуйте шагам:

  1. Проверьте, что заданный аргумент не равен null.
  2. Используйте typeof, чтобы проверить, является ли значение object и является ли свойство pipe function.
  3. Кроме того, проверьте, что typeof свойств _write и _writableState равны function и object соответственно.

Вот пример кода, который реализует эти проверки:

const isWritableStream = (val) =>
  val !== null &&
  typeof val === "object" &&
  typeof val.pipe === "function" &&
  typeof val._write === "function" &&
  typeof val._writableState === "object";

Вы можете протестировать эту функцию с использованием модуля fs в Node.js. Например:

const fs = require("fs");

isWritableStream(fs.createWriteStream("test.txt")); // true

Резюме

Поздравляем! Вы завершили практическое занятие "Запись в поток". Вы можете выполнить больше практических заданий в LabEx, чтобы улучшить свои навыки.