gpt4 book ai didi

javascript promise catch in then

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:40:50 25 4
gpt4 key购买 nike

我有一个使用 knex promise 的抽象:Core.js

class CoreModel {
constructor(tableName) {
this.table = tableName;
}

add(payload, table) {
return this.conn()(table ? table : this.table)
.insert(payload)
.then(id => id)
.catch(err => getMsg(300, err))
.finally(() => { this.conn().destroy() });
}

我正在调用一个 Controller :

register.js

return this.Users.add(request.payload.users)
.then(id => id)
.catch(err => err);

为什么在 core.js 中它确实按预期进入了 catch 但 catch 没有传播到 catch 而是传播到 then register.js 中,我是否完全遗漏了一些 promise 错误?

到这里真是摸不着头脑,很简单,就是想不通。

提前致谢:D

最佳答案

您在 (add) 中捕获它,捕获工作就像在普通函数中一样——如果您捕获它,它就会消失。

function add(a, b) {
try {
return a+b;
} catch(e) {
return something;
}
}

当您在 try catch block 中调用“add”时。你永远抓不到任何东西

如果您希望错误继续存在,请执行以下操作

.catch(err => {getMsg(300, err); throw err;})

关于javascript promise catch in then,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49837691/

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