2016-04-04 13 views
0

customWSが書き込み可能なストリームであると仮定したカスタム書き込み可能なストリームクラスの終了イベントハンドラを実装し..</p> <pre><code>util.inherits(customWS, stream.Writable); </code></pre> <p>我々は以下のような<code>_write()</code>で書き込みを処理するため、当社のロジックを実装...

customWS.prototype._write = function(chunk, encoding, done) { 
    // ... 
    } 

今度はcustomWSクラスを使用するには、次のようにします。

aReadableStream.pipe(new customWS()).on('finish', callback); 

したがって、callback関数のパラメータは何ですか?

iはcallback

..等
function(data) { 
    // ...  
    } 

を渡すことができ..またはそれが固定されています?

固定されていない場合は、customWSクラスでこのようなコールバックを実装する方法は?

は、あなたが一般的にfinish()をサポートするために何もする必要はありません。..

// in the implementation of customWS class 
    customWS.prototype._finish = function(user_specified_callback) { 
    user_specified_callback(some_data_say_a_bool_val); 
    } 

    // in the code, where i use the customWS class 
    aReadableStream.pipe(new customWS()).on('finish', function(flag) { 
    if (flag) { 
     console.log('yes'); 
    } 
    }); 

答えて

0

のようなものがあります。 finishイベントとその署名はhereと記載されています。それはパラメータを持たず、書き込み可能なストリームが "閉じ"ており、もはや書き込めないという通知に過ぎません。

ストリーム作成者は、書き込み可能なストリームの "終了"の直前に具体的に何かを行う必要がある場合は、この記事の執筆時点で多かれ少なかれ幸運です。この機能を書き込み可能なストリームに追加するには、PRがあります。 Transformストリームを実装していた場合は、_flush()が必要ですが、デュプレックスストリームを実装する場合(書き込み可能でない場合のみ)に便利です。

関連する問題