实现如下流程,用什么方式比较好。
<p>前面的如果已经报错就直接返回,后面的不执行了,有好的实现方式吗,这样如果层太多了的话不好:</p>
<pre><code> userModel.checkName(function(err, id){ if(err){ req.json({msg : ‘…’}); }else{ userModel.checkTel(function(err, id){ if(err){ req.json({msg : ‘…’}); }else{ //… } }); } }); </code></pre>
7 回复
没人回答么
promise.then().then()…catch()
中间任何一个then 出错, reject, 调用catch
async series 也可以
async.series([
function(){ ... },
function(){ ... }
]);
@leapon series 具体的实现呢?
你这个 checkName 和 checkTel 是异步的吗? 不太可能吧? 只是数据校验的话,validator 可以看下。很多 orm 框架也有带 validation 。可以看看。
async.series([
function(callback){
userModel.checkName(function(err, id){
if (err) {
callback(err, 'checkName');
} else {
// do your stuff with checkName
callback(null, 'checkName');
}
});
},
function(callback){
userModel.checkTel(function(err, id){
if (err) {
callback(err, 'checkTel');
} else {
// do your stuff with checkTel
callback(null, 'checkTel');
}
}
],
function(err, results){
// results is now ['checkName', 'checkTel'] when no error is raised
});