Acme.BookStore.HttpApi.Host/node_modules/lazystream/README.md

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

# Lazy Streams

> *Create streams lazily when they are read from or written to.*  
> `lazystream: 1.0.0` [![Build Status](https://travis-ci.org/jpommerening/node-lazystream.png?branch=master)](https://travis-ci.org/jpommerening/node-lazystream)  

## Why?

Sometimes you feel the itch to open *all the files* at once. You want to pass a bunch of streams around, so the consumer does not need to worry where the data comes from.
From a software design point-of-view this sounds entirely reasonable. Then there is that neat little function `fs.createReadStream()` that opens a file and gives you a nice `fs.ReadStream` to pass around, so you use what the mighty creator deities of node bestowed upon you.

> `Error: EMFILE, too many open files`  
> ─ *node*

This package provides two classes based on the node's Streams3 API (courtesy of `readable-stream` to ensure a stable version).

## Class: lazystream.Readable

A wrapper for readable streams. Extends [`stream.PassThrough`](http://nodejs.org/api/stream.html#stream_class_stream_passthrough).

### new lazystream.Readable(fn [, options])

* `fn` *{Function}*  
  The function that the lazy stream will call to obtain the stream to actually read from.
* `options` *{Object}*  
  Options for the underlying `PassThrough` stream, accessible by `fn`.

Creates a new readable stream. Once the stream is accessed (for example when you call its `read()` method, or attach a `data`-event listener) the `fn` function is called with the outer `lazystream.Readable` instance bound to `this`.

If you pass an `options` object to the constuctor, you can access it in your `fn` function.

```javascript
new lazystream.Readable(function (options) {
  return fs.createReadStream('/dev/urandom');
});
```

## Class: lazystream.Writable

A wrapper for writable streams. Extends [`stream.PassThrough`](http://nodejs.org/api/stream.html#stream_class_stream_passthrough).

### new lazystream.Writable(fn [, options])

* `fn` *{Function}*  
  The function that the lazy stream will call to obtain the stream to actually write to.
* `options` *{Object}*  
  Options for the underlying `PassThrough` stream, accessible by `fn`.

Creates a new writable stream. Just like the one above but for writable streams.

```javascript
new lazystream.Writable(function () {
  return fs.createWriteStream('/dev/null');
});
```

## Install

```console
$ npm install lazystream --save
lazystream@1.0.0 node_modules/lazystream
后面还有 50 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。