在Bot Framework中成功进行外部API调用时发送消息

问题描述 投票:0回答:1

我正在从Bot Framework进行外部后REST API调用。如果呼叫状态为200(OK),那么我需要发送“API请求成功”,否则“API请求失败”。

示例代码:

Xyz.js

module.exports.Xyz = function Xyz(params) {

   request.get(`url`,
     function (error, response, body) {


       if (response.statusCode !== 200) {
        //
         return await step.context.sendActivity(`API Request Failed`);
        }
       var jobSubmitted = JSON.parse(response.body);

         return await step.context.sendActivity(`API Request Success`);
      }); 

}

index.js i have below function

  async sendMessage(step){

         Xyz.Xyz();

         return await step.endDialog();
     }

目前我收到错误“await仅在异步函数中有效”。

实际期望1)机器人应该等待REST服务响应然后它应该发送消息。

我是Node JS和Bot Framework的新手。我正在寻找一种很好的方法来实现这一目标。

rest azure api botframework chatbot
1个回答
0
投票

根据上面的错误,您不能在未声明为异步的函数中使用await语句。因此,如果此代码位于函数内部,请将该函数设置为异步。

正确实施:


module.exports.Xyz =  function Xyz(params) {

   request.get(`url`,
   async function (error, response, body) {


       if (response.statusCode !== 200) {

         return await step.context.sendActivity(`API Request Failed`);
        }
       var jobSubmitted = JSON.parse(response.body);

         return await step.context.sendActivity(`API Request Success`);
      }); 

}



  async function sendMessage(step){

         Xyz.Xyz();

         return await step.endDialog();
     }

你可以更好地了解异步函数here

© www.soinside.com 2019 - 2024. All rights reserved.