1
我是使用藍鳥承諾庫的新手。我想知道是否有更好的方法來包裝複雜的分支語句,可能需要也可能不需要異步調用,而不是我目前正在做的。什麼我現在有如何包裝需要異步調用的複雜if-then語句?
例如:
(function() {
if (a) {
return ModelA.findById(id);
} else if (b) {
return ModelB.findById(id);
} else if (c) {
return ModelC.findById(id);
} else {
return Promise.reject(new Error('a, b, or c must be specified'));
}
})()
.then(function(result) {
if(result == null) {
return new Error('Object not found')
}
result.removedBy = user.id;
result.removedWhen = new Date();
result.inactive = true;
return result.save();
})
這裏我沒有看到很大的改進潛力。當然,你可以使用三元運算符而不是「if」(這可以省略IIFE),並且你只能區分模型而不是方法調用,但是你正在做的事情是非常好的和可讀的。 – Bergi
「a」,「b」和「c」究竟是什麼? – Bergi