Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 等待函数未等待并传递到下一行_Javascript_Node.js_Async Await - Fatal编程技术网

Javascript 等待函数未等待并传递到下一行

Javascript 等待函数未等待并传递到下一行,javascript,node.js,async-await,Javascript,Node.js,Async Await,我创建了一个基本函数,它调用另一个函数,该函数应该返回一个结果,然后我想从主函数中记录它,但当我这样做时,它只是不等待和记录(未定义),也不等待结果到达 const returnBool=async()=>{ const googleData=wait getData(); console.log(谷歌数据); }; 常量getData=()=>{ 谷歌趋势 .interestOverTime({关键字:`Test`}) .然后(函数(结果){ 控制台日志(结果); 返回结果; }) .cat

我创建了一个基本函数,它调用另一个函数,该函数应该返回一个结果,然后我想从主函数中记录它,但当我这样做时,它只是不等待和记录(未定义),也不等待结果到达

const returnBool=async()=>{
const googleData=wait getData();
console.log(谷歌数据);
};
常量getData=()=>{
谷歌趋势
.interestOverTime({关键字:`Test`})
.然后(函数(结果){
控制台日志(结果);
返回结果;
})
.catch(函数(err){
console.error('哦,不,有个错误',err);
});

};
您的
getData
函数不会返回承诺,因此
(a)等待它不会有多大作用<因此,代码>谷歌数据
在您尝试将其记录到控制台时仍然未定义

例如,尝试将
getData
代码包装到承诺中,如下所示:

const getData=()=>{
返回新承诺((解决、拒绝)=>{
谷歌趋势
.interestOverTime({关键字:`Test`})
.然后(函数(结果){
返回解析(结果);
})
.catch(函数(err){
退货拒绝(err);
});
});
}
另外,我建议添加一个
试试。。。catch
块到第一个异步函数,如下所示

const returnBool=async()=>{
试一试{
const googleData=wait getData();
console.log(谷歌数据);
}捕获(ex){
}
};
实际上,根据您实际要执行的操作,您可以在此处保存一些行,并删除以下附加功能:

const returnBool=async()=>{
试一试{
const googleData=等待googleTrends.interestOverTime({关键字:'Test'});
返回谷歌数据?真:假;
}捕获(ex){
/*错误处理*/
返回错误
}
}
如果可以的话,让我再提一件事
returnBool
对于函数来说并不是一个好名字。试试更具描述性的东西,比如

const关键字hasdata=async(关键字)=>{
//…等待googleTrends.interestOverTime({keyword});
}

您忘记了
getData
中的return语句,请删除花括号或在lambda中添加return。目前您的功能似乎没有回报承诺。让我建议自己感谢您;P