expressjs 承诺和 sunc 错误处理

Posted

技术标签:

【中文标题】expressjs 承诺和 sunc 错误处理【英文标题】:expressjs promise & sunc error handling 【发布时间】:2017-01-21 08:10:31 【问题描述】:

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

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】:

同步错误和承诺不会混合

我找到的最佳解决方案是抛出被拒绝的承诺,这样 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
        )

【讨论】:

以上是关于expressjs 承诺和 sunc 错误处理的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Node.js expressjs 的异步对象方法中处理未处理的承诺拒绝?

ExpressJS - 抛出未处理的错误事件

使用带有 expressjs 的 multer 上传文件时的错误处理

即使 Expressjs 中存在错误处理程序,AWS 也会显示它自己的错误屏幕

javascript 承诺所有运行所有承诺和处理程序错误

Expressjs:DB操作处理错误(下一步未定义)