我正在从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的新手。我正在寻找一种很好的方法来实现这一目标。
根据上面的错误,您不能在未声明为异步的函数中使用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。