【发布时间】:2017-12-13 01:34:14
【问题描述】:
大家好!
我使用 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 函数不会捕获被拒绝的值,我会收到类似 Unhandled Promise Rejection 的错误。 但是,其实我在promise中添加了.catch函数。
有人知道这里有什么问题吗? 感谢帮助!
【问题讨论】:
-
确实返回新的承诺
-
但是promise与请求方法没有关联,是吗?
-
您为什么不返回
superagent承诺?创建一个新的承诺是一种反模式
标签: javascript node.js promise