Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
expressjspromise&;sunc错误处理_Express_Error Handling_Es6 Promise_Parse Server - Fatal编程技术网

expressjspromise&;sunc错误处理

expressjspromise&;sunc错误处理,express,error-handling,es6-promise,parse-server,Express,Error Handling,Es6 Promise,Parse Server,如何在同一代码中处理同步错误和承诺错误? 这是我的代码,但我不确定它是否工作良好,有什么想法吗 helpers.list({ limit: 1 }) .then(function(results) { // handle no results if (results.length < 1) { return next(); }

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

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);
        })
helpers.list({
限额:1
})
.然后(函数(结果){
//不处理结果
如果(结果长度<1){
返回next();
}
res.render(“post/post”);
})
.失败(功能(错误){
下一步(错误);
})

同步错误和承诺不会混淆

我找到的最佳解决方案是抛出被拒绝的承诺,这样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
        })
helpers.list({
限额:1
})
.然后(函数(结果){
//不处理结果
如果(结果长度<1){
//呼叫next将转到下一条线路,即404
next();
返回Parse.Promise.reject('未找到结果')
}
res.render(“post/post”);
})
.失败(功能(错误){
//调用下一步(错误);将调用快速错误处理程序
})