javascript - Azure 函数在语法有效时提示 JS 语法错误

标签 javascript azure ecmascript-6 azure-functions

我在 JS 中定义了一个 Azure 函数

module.exports = async function (context, req) {
    if (req.query.name || (req.body && req.body.name)) {

        // generate mock result
        const mockChecker = new mockCheckBuild();
        const result = await mockChecker.runAsync();

        context.res = {
            body: result
        };
    }
    else {
        context.res = {
            status: 400,
            body: "Please pass a name on the query string or in the request body"
        };
    }
    context.done();
};

function mockCheckBuild() {
   this.statuses = ['Failed', 'Complete'];

   this.branchId = 808;

   this.buildNumbers = ['0.1.1.1023', '0.1.1.1024', '0.1.1.1025'];

   this.runAsync = async function() {
      return new Promise(resolve => 
        setTimeout(() =>
            resolve({
                branchId: this.branchId,
                latestBuild: this.statuses.randomElement(),
                buildStatus: this.buildNumbers.randomElement()
            })
        , 2000)
      );
   };

   return this;
}

Array.prototype.randomElement = function()
{
    const index = Math.floor(Math.random() * this.length);
    return this[index];
};

我已经运行了许多语法验证器来验证它是正确的 JavaScript。我还要注意 Azure 语法高亮显示像 async 这样的词。和 const .

但是,当我运行它时,我得到

"Exception while executing function: Functions.CheckLatestBuild -> One or more errors occurred. -> D:\home\site\wwwroot\CheckLatestBuild\index.js:1\n(function (exports, require, module, __filename, __dirname) { module.exports = async function (context, req) {\n
^^^^^^^^\n\nSyntaxError: Unexpected token function\n at createScript (vm.js:56:10)\n at Object.runInThisContext (vm.js:97:10)\n at Module._



知道为什么吗?或者关于如何更好地调查的任何建议?

最佳答案

Azure Functions v1 运行不支持异步的 Node 6.x。如果您改为尝试 Functions v2 Preview,则可以运行 Node 8.x(以及很快的 10.x),并且异步将起作用。

关于javascript - Azure 函数在语法有效时提示 JS 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50284214/

相关文章:

json - Azure 函数 Json.Net 依赖问题

node.js - Azure Node.js Express App scaffold.xml 丢失

javascript - 颜色框和 ListView

javascript - 将对象转换为数组并省略键

azure - 在 Azure 中使用 GetEnvironmentVariable 读取 local.settings.json 中的 ConnectionStrings

webpack - 使用babel插件后,解构分配在IE 11中不起作用

javascript - 使用 es6 map() 的意外 token

Javascript ES6 迭代器协议(protocol)和 forEach

javascript - 使用JavaScript搜索名称

javascript - Array.concat()返回一个空数组