node.js - 未处理的承诺拒绝警告(尽管有 catch 块)
问题描述
我似乎有一个用于处理承诺拒绝的链式 catch 块(它确实可以捕获拒绝),但我仍然看到有关未处理的承诺拒绝的警告。我在这里没有得到什么?
Promise.resolve(req.query.request_token)
.then(function(rt) {
request_token = rt+'2'
return kc.generateSession(request_token, api_secret)
})
.then(function(resp) {
console.log(resp)
return kc.setAccessToken(resp.access_token)
})
.then(() => console.log(kc))
.catch(err => console.error(err))
解决方案
因此,我尝试重新创建此示例并查看您的承诺链是否有问题,但我不认为这是因为我下面的示例工作正常,即:我尝试抛出错误,并拒绝每个模拟函数但没有无论我在模拟函数中做什么,“这发生在这里”仍然会被打印出来。
function testResolve() {
return new Promise((res, rej) => res(1))
}
function generateSession(a, b) {
return new Promise((res, rej) => {
console.log(a)
console.log(b)
res(`a: ${a}, b: ${b}`)
})
}
function setAccessToken(token) {
return new Promise((res, rej) => {
res(1)
})
}
Promise.resolve(testResolve())
.then(function(rt) {
var request_token = rt+'2'
return generateSession(request_token, 'a1')
})
.then(function(resp) {
console.log(resp)
return setAccessToken(resp.access_token)
})
.then(() => console.log(x))
.catch(err => {
console.log('this happens here')
console.error(err)
})
我会检查未处理的承诺拒绝消息并查看它给您的行号,并查看发生错误的文件名。可能在其他地方的代码中存在未处理的拒绝,因为据我所知,这个承诺链应该捕获链中任何地方发生的任何错误。
推荐阅读
- xamarin - 如果我运行每分钟运行一次并从 App.Xaml.cs OnStart() 调用的异步方法,是否存在任何可能的性能问题?
- c - 如何从字符串类型行中提取char类型元素并添加到c中的列表
- javascript - Javascript 在有效文件名后获取路径(如 PHP PATH_INFO)
- xampp - PWA - 与 Xampp 和虚拟主机一起使用时无法注册 Service Worker
- javascript - ugly nested forEach in javascript best practise
- jenkins-pipeline - Artifactory Continuous integration approach
- c++ - Syntax of an un-named function pointer in C++
- android - Android NDK - 无法在 Visual Studio 2017 中调试
- python - Python program that simulates a full one player game of pig, starting at a totalscore of 0 and playing turn after turn until it reaches 100 points
- c# - 将数据集序列化为 XML - 缺少具有空值的列