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 });