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

时间:2016-06-06 13:32:36

标签: javascript node.js parse-server

不确定这是否是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编译时错误,但至少应该有运行时错误。但是,当我运行它时,它只是“挂起”。控制台中没有任何内容,没有错误,只是控件没有继续超过该行(如果我在错误的行之前和之后放置了console.log,我之前只得到日志)。

这是为什么?有没有办法让它抛出运行时错误?也许是一些JavaScript / Node.js配置?

注意: 如果我将它包装在try-catch中,我会在控制台中获得'ReferenceError: resultsss is not defined',但我无法尝试捕获这样的每一段代码。

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

1 个答案:

答案 0 :(得分:1)

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

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

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