我正在从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();
}
当前,我收到一个错误“等待仅在异步函数中有效”。
实际期望 1)机器人应等待REST服务响应,然后发送消息。
我对Node JS和Bot Framework完全陌生。我正在寻找实现这一目标的好方法。
答案 0 :(得分: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。