【发布时间】:2021-07-13 23:52:16
【问题描述】:
我正在尝试检查“checkWorkflow”的结果,但它似乎在检查之前正在运行“If”语句,我认为这是因为我的控制台输出。 我觉得我的承诺做错了,但我现在有点迷茫。
控制台输出
Promise { pending } *When i console.log(doesWorkflowExists)
工作流程已存在,请重命名
错误2
const createWorkflow = async (req, res) => {
try {
const doesWorkflowExists = checkWorkflow(req.name);
if (!doesWorkflowExists) {
console.log('do stuff')
}
else {
console.log('workflow already exists, please rename')
}
} catch (error) {
handleError(res, error);
console.log("error on create workflow");
}
};
vvvv checkWorkflow vvvv
const checkWorkflow = (name = '') => {
return new Promise((resolve, reject) => {
Workflow.findOne(
{
name,
},
(err, item) => {
if (err) {
console.log('error1')
return reject(buildErrObject(422, err.message));
}
if (item) {
console.log('error2')
return reject(buildErrObject(404, "WORKFLOW_ALREADY_EXISTS"));
}
resolve();
}
);
});
};
【问题讨论】:
-
所以它的工作方式与应有的方式完全一致?
标签: javascript node.js mongoose request-promise