假设我有一些如下定义的功能。我的问题是,一个.catch语句将适用于任何数量的嵌套.then?
myModelName.findOne({blah: blah}).then(function(user)
{
if(user)
{
anotherModel.create({blah blah params}).then(function(user){
response back with something;
})
// Should I catch again here for this error or the catch stament below will catch it.
}
}).catch(function(error){
response back with error;
});
我知道有更好的方法可以做到这一点,但我只是想了解这种情况。
答案 0 :(得分:1)
这取决于您的使用案例。你有几个嵌套的catch
电话,或者你只有一个:
myModelName.findOne({blah: blah})
.then(function(user) {
if(user) {
return anotherModel.create({blah blah params});
}
return user;
})
.catch(function(error){
response back with error;
});
您还可以在then
之后直接附加create
来电。但重要的是你要兑现承诺。否则就无法抓住它。
答案 1 :(得分:1)
几乎所有ORM或承诺中都有两件事
需要更多查找交易&批处理https://www.npmjs.com/package/mssql#batch-batch-callback