我需要一个表的最大 id 并希望访问此值以插入另一个表,但我无法在回调函数之外访问它。如何在 block 外访问此值?
我正在使用 Sequelize 和 Node.js。我的代码是:
var employeeCode = 'EMP1';
var employeeCodeObj = Employee.max('id').then(function(max) {
var maxid = max + 1;
employeeCode = "EMP" + maxid;
console.log(employeeCode);
}).catch(err => {
res.send({
msg: 'Unable to generate employee code!',
status: 'Failure',
response: 500,
data: []
});
});
console.log(employeeCode);
该表只有一行,但是当我打印此值时,它总是打印
EMP1
当结果应该是 EMP2
.
最佳答案
Node.js 是异步的。
这意味着最后一个 console.log 将比 then 中的函数先执行。
max 函数中的代码将执行,其余代码将继续执行。仅当计算最大值时 then 函数才会执行,但同时 console.log 已经执行。
您将需要在 then 函数中执行需要 max employee 的代码,或者使用“async”之类的模块来帮助处理异步代码并解决回调 hell 。
查看此网站:http://callbackhell.com/ .
关于node.js - 如何将表的最大 id 值分配给 Node.js 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46216149/