簡體   English   中英

javascript承諾趕上

[英]javascript promise catch in then

我使用knex promises進行抽象: 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() });
}

我在控制器中打電話:

register.js

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

為什么在core.js它確實按照預期去捕獲但是catch不會傳播到catch但是傳遞給register.js then我完全錯過了promises錯誤的東西?

真的在這里撓頭,這很簡單,但無法弄明白。

提前致謝

你正在捕捉(添加),捕捉就像在正常功能中一樣 - 如果你抓住它,它就會消失。

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

當你在try catch塊中調用'add'時。 你永遠不會抓到任何東西

如果您希望錯誤繼續,請執行以下操作

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM