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