2017-05-07 28 views
0

現在モジュールhttps://www.npmjs.com/package/gotを取得しようとしていますが、機能の書式/順番について少し混乱しています。それはあなたがそのような連鎖機能

got.stream(link) 
.on('response', resp => { 
    if (resp.statusCode != 200) this.emit('error', '!200') 
}) 
.on('error', err => { 
    console.log(err) 
}) 
.pipe(somewhere) 

requestモジュールはまた、これを実行してリスナーと機能をチェーンできることは明らかです。しかし、それが条件resp.statusCode != 200でのみ発生したければ、どうすれば.pipeを避けるのですか?多くのリクエストモジュールで使用されていることを確認するには、理解するのが非常に基本的なものでなければなりませんが、私はそれを十分に理解することはできません。

+0

あなたは 'got.stream(何でも)'、それは、基本的にはチャンク内のデータを発するものだ「Readable Streamです」と、生成されないとき一度にすべてではなく、通常の機能のように一度にすべてを戻すのが好きです。読み込み可能なストリームのドキュメントは、https://nodejs.org/dist/latest-v7.x/docs/api/stream.html#stream_readable_streams – Markasoftware

+0

でご覧になれます。ただし、条件が満たされるまで配管を開始しない方法があります合っている?それともこの場合は不可能なのでしょうか? [fetch](https://www.npmjs.com/package/fetch)は、ストリームに変数を代入し、リスナーに 'this'をパイプできるのであれば、これを行うことができるようです – platizin

答えて

1

は、望ましくない場合にはチェーン化する必要はありません。この場合、望ましくない場合があります。ここでは、連鎖することなく、それを行うだろうとの簡単な例です:

const gotStream = got.stream(link); 
gotStream.on('response', resp => { 
    if(resp.statusCode == 200) { 
     gotStream.pipe(somewhere); 
    } 
}); 
+0

ああ、私は今参照してください。私は質問を投稿する前にこれを試していましたが、代わりに 'got(link)'を使っていました。どうもありがとうございました! – platizin

+0

うれしい私は助けることができました!これがあなたの質問に完全に答えたら、投票カウンターの下のチェックをクリックして、この答えを正しいものとして「受け入れる」ことができます。 – Markasoftware