如何使用异步函数修复 'Unexpected Token' 错误

How to fix 'Unexpected Token' error with async function

我正在 azure (v3) 上开发一个 Web 应用程序机器人,我正在使用异步方法,但我似乎无法解决 SyntaxError: Unexpected token function 的问题。

我已经尝试将我的 nodeJS 从 6.9.4 更新到 8.9,但是没有用。我也 运行 npm i -g azure-functions-core-tools@core 但仍然没有。

class OAuthHelpers {
/**
 * Enable the user to schedule meeting and send an email attachment via the bot.
 * @param {TurnContext} turnContext 
 * @param {TokenResponse} tokenResponse 
 * @param {*} emailAddress The email address of the recipient
 */

async function createevent(turnContext, tokenResponse, emailAddress) {
    if (!turnContext) {
        throw new Error('OAuthHelpers.createevent(): `turnContext` cannot be undefined.');
    }
    if (!tokenResponse) {
        throw new Error('OAuthHelpers.createevent(): `tokenResponse` cannot be undefined.');
    }


    var client = new SimpleGraphClient(tokenResponse.token);

    // Calls the Graph API with the subject and content message...
    await client.createevent(
        emailAddress,
        `Lunch`,
        `I will be taking everyone to lunch as a reward for your hardwork.`
    );

    // Success message...
    await turnContext.sendActivity(`Success! I have scheduled a meeting with you and ${ emailAddress } have created an event on each of their calendars.`);
    } 

我希望机器人 运行 正常,但它不能,因为 azure 出于某种原因无法检测到异步功能。感谢任何帮助

OAuthHelpers class 需要 'simple-graph-client',其中包含您要使用的所有方法。在原始示例中,您的代码来自 BotBuilder-Sample 24.bot-authentication-msgraph,如果您导航到 simple-graph-client.js 文件,您将看到调用的方法(即 sendMail、getRecentMail、getMe 和 getManager ) 在 OAuthHelpers.js 文件中。

如果您还没有,则需要包含一个创建事件的方法。这又作为机器人对话框的一部分从 OAuthHelpers.js 文件中调用。

如果没有更多代码,很难知道什么是什么,但我的猜测是令牌正在传递到您的 createevent 方法中,但是,由于该方法(可能)不作为图形 api 调用存在, 它不知道如何处理它。

查看以下链接以获取指导:

  • MS 图表 sample 显示前 3 个日历事件的 GET 调用
  • MS Graph 单元测试example,但演示了一个事件POST
  • API reference 用于创建事件
  • 添加 info 创建重复事件...可能有用

希望得到帮助!