gpt4 book ai didi

javascript - 错误处理node.js

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:13 24 4
gpt4 key购买 nike

我正在尝试学习node.js

我有一个工作函数并尝试处理这样的异常:

Client.Session.create(device, storage, username, password)
.then(function(session) {
session.getAccount()
.then(function(account) {
console.log(account.params)
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify(account.params));
return session
})
}).catch(Exceptions.AuthenticationError, function(err) {
console.log(err)
})

但它不起作用,如果登录无效,我仍然会收到此消息:

Unhandled rejection AuthenticationError: The username you entered doesn't appear to belong to an account. Please check your username and try again.

最佳答案

尝试

Client.Session.create(device, storage, username, password)
.then(function(session) {
return session.getAccount() <-- NOTICE THE RETURN STATEMENT!!
.then(function(account) {
console.log(account.params)
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.end(JSON.stringify(account.params));
return session
})
}).catch(Exceptions.AuthenticationError, function(err) {
console.log(err)
})

如果没有 return,Client.Session.Create(...) 返回的 Promise 的 .then 处理程序将返回已解析的 Promise(这是其默认行为)。

Promise 拒绝不是任何类型的异常,因此它们不会像您被添加时那样自动重新抛出,例如,如下所示:

session.getAccount(...).then(...).catch(function(){throw "FooBar"});

关于javascript - 错误处理node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com