Javascript 解析云后台作业未通过调用.success()停止执行

Javascript 解析云后台作业未通过调用.success()停止执行,javascript,node.js,cloud,parse-platform,jobs,Javascript,Node.js,Cloud,Parse Platform,Jobs,我假设调用status.success()会终止后台作业。但是,当我运行它时,仍然会看到第二条日志消息: Parse.Cloud.job("Tester", function (request, status) { console.log("Starting our Test ..."); status.success("done!"); // I still see this! console.log

我假设调用
status.success()
会终止后台作业。但是,当我运行它时,仍然会看到第二条日志消息:

Parse.Cloud.job("Tester", function (request, status) {
    console.log("Starting our Test ...");
    status.success("done!");

    // I still see this!
    console.log("We don't get here!"); 
});
以下是日志:

I2014-05-07T09:41:51.504Z]v344 Ran job Tester with: Input: {} Result: done! I2014-05-07T09:41:51.520Z]Starting our Test ... I2014-05-07T09:41:51.520Z]We don't get here! I2014-05-07T09:41:51.504Z]v344运行作业测试仪时使用: 输入:{} 结果:完成! I2014-05-07T09:41:51.520Z]开始我们的测试。。。 I2014-05-07T09:41:51.520Z]我们到不了这里! 如果不是这样,我怎么能终止工作


更新。找到一个引语,让我觉得它确实终止了工作。(显然没有):

确保您没有在>find()回调之外调用response.success(),这将过早终止您的云代码>

  • 赫克托·拉莫斯大约一年前

我认为
status.success()
不会终止作业(可能
status.error()
会终止)。在我看到的任何示例中,status.success()仅用于指示作业已成功完成。如果未调用
status.success()
,作业将在15分钟后超时

您需要使用其他功能中止代码进程

从指南()中:

“您应该在代码完成时添加status.success()语句 成功地。”


如果您提供了一些关于需要终止作业的用例的信息,那么建议解决方案就更容易了。@handomeguy我想终止作业,例如,当外部服务器出现故障时。那么,与其继续尝试,我宁愿等待。当然,在超时之前,我不能人为地做任何事情,但我认为终止可能有用。是的,我看到其他人也在想同样的事情,但这似乎不是一种方式。我所能想到的就是对外部服务的可用性进行某种检查,也许您得到的响应的格式是正确的,然后如果这些都不正常,则调用status.error(),之后就没有代码执行了。如果在您的工作进行过程中发生了什么情况,我不认为有任何方法可以在工作超时之前中止它。我今天处理了几个小时类似的问题,结果抛出了一个异常-
抛出“您的消息”。这会导致线程和异步上的所有代码终止,并移动到云函数的末尾,以查看是否有东西捕获它。如果没有任何东西捕捉到它,那也没问题,因为它仍然会将您的消息(可能是积极的消息)记录到控制台。我们必须找到一个更优雅的解决方案,以返回
Parse.Promise.error(“您的消息”)
而不是抛出一个异常,该异常停止所有代码的执行,并在承诺链的末尾查找错误回调