Ошибки перехвата в обещании устранены с помощью объединения потоков в узле js

Мне нужно отлавливать ошибки, возникающие в потоке события в разрешении обещания. Что-то вроде

function foo(){
 return new Promise((resolve,reject) => {
  resolve(res.pipe(transfomrStream).pipe(through2.obj(function(obj, enc, callback) {
    on('end', ()=>{ 
        await httpReq(...)
          .then((crudRes) => assert.strictEqual(somerthing))
      })
     )
   })
 })
}

как я могу поймать провал утверждения? Я пытался вернуть ошибку в последнем pipe() или при вызове функции, но я получаю только необработанное отклонение обещания

1 ответ

Если вы окружите свой код попыткой catch, вы сможете хотя бы увидеть, в чем ваша ошибка:

function foo(){
try{
 return new Promise((resolve,reject) => {
  resolve(res.pipe(transfomrStream).pipe(through2.obj(function(obj, enc, callback) {
    on('end', ()=>{ 
        await httpReq(...)
          .then((crudRes) => assert.strictEqual(somerthing))
      })
     )
   })
 })
 }
 catch(e) {
  console.log(e)
  reject()
}
}

Кроме того, если у вас есть await вы не можете использовать .then(), И вам придется сделать свою функцию async если делаешь, жди.

Другие вопросы по тегам