Цепные функции

В настоящее время я пытаюсь использовать полученный модуль 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)

Модуль запроса также делает это. Но как вы избегаете .pipe если хочешь чтобы это случилось только при условии resp.statusCode != 200? Видя, что он используется во многих модулях запросов, это, должно быть, очень простая вещь для понимания, но я не могу понять это.

1 ответ

Решение

Вам не нужно связывать это, если вы не хотите, и в этой ситуации вы не хотите. Вот упрощенный пример того, как вы будете делать это без цепочки:

const gotStream = got.stream(link);
gotStream.on('response', resp => {
    if(resp.statusCode == 200) {
        gotStream.pipe(somewhere);
    }
});
Другие вопросы по тегам