30秒学会 JavaScript 片段 · 2019年6月16日

30秒学会 JavaScript 片段 – isReadableStream

Checks if the given argument is a readable stream.

Check if the value is different from null, use typeof to check if the value is of type object and the pipe property is of type function.
Additionally check if the typeof the _read and _readableState properties are function and object respectively.

代码片段

const isReadableStream = val =>
  val !== null &&
  typeof val === 'object' &&
  typeof val.pipe === 'function' &&
  typeof val._read === 'function' &&
  typeof val._readableState === 'object';

使用样例

const fs = require('fs');
isReadableStream(fs.createReadStream('test.txt')); // true