ストリームが双方向であるかどうか

JavaScriptJavaScriptBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、JavaScript において与えられた引数が双方向(読み書き可能)ストリームであるかどうかを判断する方法を探ります。typeof チェックとプロパティ検証を組み合わせて、双方向ストリームを正確に識別できる関数を作成します。この実験が終わるとき、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-28418{{"ストリームが双方向であるかどうか"}} javascript/data_types -.-> lab-28418{{"ストリームが双方向であるかどうか"}} javascript/arith_ops -.-> lab-28418{{"ストリームが双方向であるかどうか"}} javascript/comp_ops -.-> lab-28418{{"ストリームが双方向であるかどうか"}} javascript/obj_manip -.-> lab-28418{{"ストリームが双方向であるかどうか"}} end

ストリームが双方向であるかどうかを確認する

ストリームが双方向(読み書き可能)であるかどうかを確認するには、ターミナル/SSH を開き、コーディングの練習を始めるために node と入力します。次に、次の手順に従います。

  1. 与えられた引数が null と異なるかどうかを確認します。
  2. typeof を使用して、与えられた引数が object 型であり、pipe プロパティが function 型であるかどうかを確認します。
  3. さらに、_read_write_readableState、および _writableState プロパティがそれぞれ function 型と object 型であるかどうかを確認します。

以下がコードです。

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

このコードを次の例を使用してテストできます。

const Stream = require("stream");

isDuplexStream(new Stream.Duplex()); // true

まとめ

おめでとうございます!あなたは「ストリームが双方向であるかどうか」の実験を完了しました。あなたの技術を向上させるために、LabExでさらに多くの実験を行って練習してください。