【发布时间】:2020-12-21 05:35:46
【问题描述】:
我在 node js 中调用 get API,需要等待响应。响应 Alexa Skill 的输出。
API 代码如下:
const GetReportOnEmail = function (UserID, ReportName) {
return new Promise(function(resolve, reject){
var options = {
uri:'https://www.xxxxx/xx/xx',
method : 'GET'
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
res = body;
resolve(res);
}
else {
res = 'Not Found';
reject(res);
}
});
})
} module.exports.GetReportOnEmail=GetReportOnEmail;
这个函数我在另一个js文件中调用:
setTimeout(function () {
GetReportEmail.GetReportOnEmail('userID', 'ReportName').then((resp) => {
speechText = resp;
}).catch((error) => {
speechText = "some error occurred";
})
}, 20000);
-----更多代码行--------
在执行下一行代码之前,我需要等待此 API 的响应。我怎么做。 问候, 纳文
【问题讨论】:
-
在运行“下一行代码”之前,您不能等待 setTimeout 完成……也可以在那里使用 Promise - 或者如果 Promise 链对您来说太难,请调查 async/await
标签: javascript node.js api async-await