表达承诺& sunc错误处理

时间:2017-01-21 08:10:31

标签: express error-handling es6-promise parse-server

如何在同一代码中处理同步错误和承诺错误? 这是我的代码,但我不确定它的工作正常,有什么想法吗?

helpers.list({
            limit: 1
        })
        .then(function(results) {
          // handle no results
          if (results.length < 1) {
            return next();
          }
            res.render('post/post');
        })
         .fail(function(error){
           next(error);
        })

1 个答案:

答案 0 :(得分:0)

同步错误和承诺不会混合

我找到的最佳解决方案是抛出被拒绝的承诺,因此fail()将在最后捕获它

helpers.list({
            limit: 1
        })
        .then(function(results) {
          // handle no results
          if (results.length < 1) {
           // call next will go to next route , ie 404
           next();
            return Parse.Promise.reject('no results found')
          }
            res.render('post/post');
        })
         .fail(function(error){

           // call next(error); will invoke express error handler
        })