【问题标题】:Parse cloud code js using await throws syntax error使用 await 解析云代码 js 会引发语法错误
【发布时间】:2018-09-12 01:31:18
【问题描述】:

我的问题是这样的,我正在使用 Parse 云代码,并且我有一个保存前触发器,如下所示:

Parse.Cloud.beforeSave("Ordenes", function(request, response) {
    console.log(request.object + " beforeSaveCalled");
    var query = new Parse.Query("Ordenes");
    var current = query.get(request.object.id, {
    success: function(object) {
        console.log(object + "This row");

        console.log(object.id + " object " + request.object.id + " request.object " + "exist?");

        if (object.get("MozoAdded") === false ) {
            console.log("correct return we can proceed");
//          const ordenLocation = object.get("Ubicacion");
//          const queryMozos = new Parse.Query("MozosLocation");
//          
//          queryMozos.near("MozoLocation1", ordenLocation);
//          
//          queryMozos.limit(1);
//          
//          const mozoToAdd = await queryMozos.find();
//          
//          console.log(mozoToAdd +" El mozo cerca es " + mozoToAdd[0].get("Name"));

//          object.set("MozoName", mozoToAdd[0].get("Name"));


            response.success();
        } else if (object.get("MozoAdded") === undefined) {
            console.log("Weird but not incorrect, proceed");
//          const ordenLocation = object.get("Ubicacion");
//          const queryMozos = new Parse.Query("MozosLocation");
//          
//          queryMozos.near("MozoLocation1", ordenLocation);
//          
//          queryMozos.limit(1);
//          
//          const mozoToAdd = await queryMozos.find();
//          
//          console.log(mozoToAdd +" El mozo cerca es " + mozoToAdd[0].get("Name"));
//          
//          object.set("MozoName", mozoToAdd[0].get("Name"));
            response.success();
        } else {
            console.log("Big nope, nope, nope");
            response.error("Esta orden ya fue asignada.");

        }
    },

    error: function(object, error) {
        response.success();

    }
    });

});

未注释的注释代码抛出此错误:

 Cloud Code not loaded:
 /usr/src/app/data/cloud/main.js:175
            const mozoToAdd = await queryMozos.find();
                                    ^^^^^^^^^^

SyntaxError: Unexpected identifier
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/src/app/cloudCodeWrapper.js:4:20)

我想做的是在 MozosLocation 表中找到最近的 mozo,使用 Orden["Ubicacion"] 将其名称添加到我要保存的对象中。

如您所见,我对 js 并不是很熟悉,并且解析指南并没有真正涵盖此类错误,所以关于它可能导致它的任何想法?帮助

【问题讨论】:

    标签: javascript async-await back4app


    【解决方案1】:

    它仅适用于 Parse Server 版本 3.0.0。只有这个版本完全支持 Promise 和 async/await,你可以在它的 releases 中看到。

    【讨论】:

    • 是的,我收到一封邮件说确切的事情,文档提前了,你仍然赢得 50 分:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多