javascript - .catch 函数未捕获拒绝的值

标签 javascript node.js promise

大家好!

我使用 Node.js v8.5.0。 这是我在 Node.js 中的代码(简化版):

    // function that returns promise
    const request = (url) =>
      new Promise((resolve, reject) => {
        superagent
          .get(url)
          .end((err, res) => {
            if (err || !res.ok) {
              reject(err);
              return;
            }

            resolve(res);
          })
      })

   // function that add .then and .catch to promise   
   const to = promise =>
    promise
    .then((data) => [null, data])
    .catch((err) => [err]);

   // making request 
   let [err, result] = await to(request());

当我发出请求并发生一些错误时,.catch 函数无法捕获被拒绝的值,并且我收到诸如未处理的 promise 拒绝之类的错误。 但是,事实上我在promise中添加了.catch函数。

有人知道这里出了什么问题吗? 感谢帮助!

最佳答案

super 代理请求已返回 promise ,因此请使用它

const request = (url) => superagent.get(url).then(res=> {/*transform res**/ return res})

关于javascript - .catch 函数未捕获拒绝的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47776881/

相关文章:

javascript - HTML 5 Canvas 绘制直线的示例?

javascript - 如何通过对象进行循环以返回对象而不是字符串?

javascript - Jquery Slide Animation 滑动时改变高度

javascript - 在 Node.js (Javascript) 中将十六进制转换为文本 (ASCII) 或 JSON 对象

javascript - 如何从 promise 内部返回订阅函数

javascript - DataTables:按列对表进行排序,固定 i++ 值?

javascript - 请求 Node 模块不提供 html

node.js - 术语 'NODE_ENV=development' 未被识别为 cmdlet、函数、脚本文件或可操作程序的名称

javascript - 监视在被拒绝的 promise 中调用的函数

javascript - Angularjs promise 未及时解决