Javascript 链接函数

Javascript 链接函数,javascript,node.js,got,Javascript,Node.js,Got,我目前正在尝试使用got模块,但我对函数的格式/顺序有点困惑。很明显,您可以这样链接侦听器和函数 got.stream(link) .on('response', resp => { if (resp.statusCode != 200) this.emit('error', '!200') }) .on('error', err => { console.log(err) }) .pipe(somewhere) 模块也会这样做。但是,如果希望仅在条件res

我目前正在尝试使用got模块,但我对函数的格式/顺序有点困惑。很明显,您可以这样链接侦听器和函数

 got.stream(link)
 .on('response', resp => {
   if (resp.statusCode != 200) this.emit('error', '!200')
 })
 .on('error', err => {
   console.log(err)
 })
 .pipe(somewhere)
模块也会这样做。但是,如果希望仅在条件resp.statusCode!=200? 鉴于它在许多请求模块中都有使用,理解它肯定是一件非常基本的事情,但我不能完全理解它。

如果您不想链接它,您不需要链接它,在这种情况下,您也不想链接它。下面是一个简化的示例,说明您可以不使用链接进行操作:

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

当您得到.streamwhatever时,它会生成一个可读的流,它基本上是以块的形式发送数据的,而不是像普通函数或其他任何函数一样一次返回所有内容。您可以在这里看到可读流的文档:对-但是有没有办法在满足条件之前不启动管道?或者在这种情况下这是不可能的?似乎可以通过将流分配给一个变量来实现这一点,并且让侦听器能够在我现在看到的任何时候进行管道传输。在发布问题之前我已经试过了,但是我用的是gotlink,并试图用管道来代替。非常感谢你!很高兴我能帮忙!如果这完全回答了您的问题,您可以单击投票计数器下的复选框,将此答案视为正确答案。