【发布时间】:2020-03-16 14:12:25
【问题描述】:
我需要检查用户是否存在于两个数据库中,如果不存在,我必须创建一个新用户。
检查用户是否存在于数据库 1. 如果它存在,则抛出一个“用户存在”并捕获它而不执行其余的 then()。
检查用户是否存在于数据库中 2. 如果它存在,则抛出一个“用户存在”并捕获它而不执行其余的 then()。
如果不存在,则创建用户。
我试图打破承诺链。这是场景。 所以我做的是
const promise = new Promise((resolve, reject) => {
resolve(false);
}).then(value => {
//check if user exists in table 1 and set value to True or False
if (value==True){
throw "User exists";
}
else{
return value;
}
}).then(value=> {
////check if user exists in table 2 and set value to True or False
if (value==True){
throw "User exists";
}
else{
return value;
}
}).catch(err => {
console.log(err);
});
这是它的简要外观。
但即使我抛出一条消息,它也不会停止执行后面的 then() 语句。即使找到用户,它也会继续执行整个代码。
它还显示下面的内容并停止整个执行。
throw 'user found'
^
注意:在我得到用户值之后,我必须处理它们。所以不应该停止执行。
【问题讨论】:
-
您使用的是哪个版本的 Node.js?