跳到主要内容
CNode

实现如下流程,用什么方式比较好。

问答
Yyiranrucianjing发布于 11 年前最后回复 11 年前
739710

前面的如果已经报错就直接返回,后面的不执行了,有好的实现方式吗,这样如果层太多了的话不好:


    userModel.checkName(function(err, id){
        if(err){
          req.json({msg : '...'});
        }else{
          userModel.checkTel(function(err, id){
            if(err){
              req.json({msg : '....'});
            }else{
              //...
            }
          });
        }
      });
查看回复

回复 (7)

L
leapon#711 年前
引用 yiranrucianjing@leapon series 具体的实现呢?

@yiranrucianjing

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
});
K
klesh#611 年前

你这个 checkName 和 checkTel 是异步的吗? 不太可能吧? 只是数据校验的话,validator 可以看下。很多 orm 框架也有带 validation 。可以看看。

L
luoyjx#511 年前

比较急的话可以用async先搞定吧,长远角度你可以去看看bluebird(Promise的实现)这类的

Y
yiranrucianjing#411 年前

@leapon series 具体的实现呢?

L
leapon#311 年前

async series 也可以

async.series([
    function(){ ... },
    function(){ ... }
]);
M
magicdawn#211 年前

promise.then().then()....catch()

中间任何一个then 出错, reject, 调用catch

Y
yiranrucianjing#111 年前

没人回答么

参与回复

登录后即可参与回复。登录