【发布时间】:2019-09-08 16:30:21
【问题描述】:
我在 nodejs 和 mysql 中有程序,如下所示
db.query()
.then(1)
.then(2)
.then(3)
.catch()
我正在检查 then(1) 中数据库中的一个值并尝试从那里返回响应。在 then(2) 中,我正在执行另一个代码,该代码使用来自 then(1) 等结果的一些数据......
我的问题:当从then(1)返回响应时,catch()正在调用(因为then(2)有错误,没有从then(1)获取数据)。那么有什么办法可以阻止then(1) 中的进一步执行,以便then(2) 和catch() 无法调用?
db.query('query......', [val1, val2])
.then(rslt => { return res.json({ mssg: "Email already exists!", error: "Email already exists!" }) })
.then(user => { return db.query('INSERT INTO ', value, (err, res, flds) => { err ? reject(err) : resolve(res) }) })
.then(user => { return res.json({ mssg: "Success", success: true}) })
.catch( (err) => { console.log(err) })
【问题讨论】:
-
我可以看看您从 then(1) 到 then(2) 是如何返回响应的吗?
-
db.query('query......', [val1, val2]) .then(rslt => { return res.json({ mssg: "Email already exists!", error: "Email already exists!" }) }) .then(user => { return db.query('INSERT INTO ', value, (err, res, flds) => { err ? reject(err) : resolve(res) }) }) .then(user => { return res.json({ mssg: "Success", success: true}) }) .catch( (err) => { console.log(err) })