如果回调错误,请更改异步系列订单

时间:2014-11-11 19:28:02

标签: node.js

    async.series([
        function(callback){
            data.exists(user, callback)
        },
        function(callback){
            period.refresh(user, callback)
        }
    ],
    function(err, results){
        if(err) {

            async.series([
                function(callback){
                    data.generate(user, callback)
                },
                function(callback){
                    period.refresh(user, callback)
                }
            ])

        }
    })

有没有更聪明的方法来处理异步?如果数据存在,则应该刷新, 否则应该生成一个刷新的。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用3步瀑布而不是使用系列,而只需在第二步中检查用户。

async.waterfall([
  function(callback) {
    /* get user */
    callback(null, user);
  },
  function(user, callback) {
    if(user) return callback(null, user); // return early if user exists
    /* create user */
    callback(null, user);
  },
  function(user, callback) {
    /* refresh user */
    callback();
  }
  ],
  function(err) {
    if(err) throw err;
    /* process done successfully */
  }
);