Javascript 在IF语句中使用异步函数的返回值
NodeJS和JavaScript的新特性 我使用NodeJS进行API调用,以在异步函数中返回一些JSON数据。目前,API调用正在按预期工作,我已经解析了我正在寻找的数据。我遇到的麻烦是将解析后的json数据用作IF语句中的一个条件,这样我就可以继续使用其他脚本和预期函数。为了简化,如果JSON数据是我期望的数据,我编写了一个字符串语句: const fetch=requirenode fetch; var accessToken=承载; var url=; 变量头={ “内容类型”:“应用程序/json”, “接受”:“应用程序/json”, “授权”:accessToken }; const getData=异步url=>{ 试一试{ const response=await fetchurl,{method:Get,headers:headers}; const json=await response.json; console.logjson.status; 返回json.status }捕捉错误{ console.logerror; } }; 让apiStatus=getDataurl; 让激活=激活; 让配置=配置; 如果apiStatus.toString!==激活{ 控制台。logBLAH;Javascript 在IF语句中使用异步函数的返回值,javascript,node.js,function,asynchronous,Javascript,Node.js,Function,Asynchronous,NodeJS和JavaScript的新特性 我使用NodeJS进行API调用,以在异步函数中返回一些JSON数据。目前,API调用正在按预期工作,我已经解析了我正在寻找的数据。我遇到的麻烦是将解析后的json数据用作IF语句中的一个条件,这样我就可以继续使用其他脚本和预期函数。为了简化,如果JSON数据是我期望的数据,我编写了一个字符串语句: const fetch=requirenode fetch; var accessToken=承载; var url=; 变量头={ “内容类型”:“应
} 您需要等待承诺得到解决,因为现在您将评估一个承诺挂起的对象 您的getData函数很好
let apiStatus = await getData(url);
我认为异步在窗口范围内不起作用,您可以尝试一下。如果这不起作用,那么你只需要等待承诺得到解决
getData(url).then(
status => {
if (status.toString() === 'activated'){
...
}
});
使用wait getData或getData.thenapiStatus=>…使用回调。然后完成了这个技巧!我非常感谢你的帮助!