NodeJS挂起,没有错误,没有崩溃

不知道这是一个JavaScript,Node.js或ParseServer特定的问题。

我有以下CloudCode函数(ParseServer):

Parse.Cloud.define('testingScores', function(request, response) { var responseData = {"test_key1": "test_value1"}; var query_scores = new Parse.Query("Score"); query_scores.find({ success: function(results) { responseData.fromServer_scores = results; response.success(responseData); }, error: function(error) { response.error("scores lookup failed"); } }); }); 

这可以正常工作。 现在我换了一个错误,如下所示:

 responseData.fromServer_scores = resultsss; 

显然, resultsss没有在任何地方定义。 我知道不要期望JavaScript的编译时错误,但至less应该有一个运行时错误。 但是,当我运行这个,它只是“挂起”。 没有在控制台,没有错误,只是控制不会继续超过该行(如果我把一个console.log之前和之后不正确的行,我只得到日志之前)。

为什么是这样? 有没有办法让它引发运行时错误? 也许一些JavaScript / Node.jsconfiguration?

注意:如果我把它包装在try-catch中,我会在控制台中得到'ReferenceError: resultsss is not defined' ,但我不能尝试捕获每一行代码。

注意:我尝试了"use strict"; 没有运气。

以下是我从Github得到的答案。

在处理Promise时,最好使用一个.catch()来结束.then()调用链,以处理链中可能发生的任何exception。

 var userQuery = new Parse.Query("User"); userQuery.get("XhmDC123wh").then(function (user) { throw new Error('!'); }).catch(function(err) { // err === the error above });