javascript - Await 不等待另一个 Await
问题描述
等待函数对我不起作用,当代码从第 22 行的调用到达第 36 行时(直到这一行一切正常),代码跳转到第 32 行(不执行第 (22-31) 行),而不是返回第 13 行并返回空数组。
知道我在做什么错吗?
/*1*/ async function getMatchesInfo(matches_ids_list){
/*2*/ let promises = [];
/*3*/ matches_ids_list.map((id) =>
/*4*/ promises.push(
/*5*/ axios.get(`${api_domain}/fixtures/${id}`, {
/*6*/ params: {
/*7*/ api_token: process.env.api_token,
/*8*/ },
/*9*/ })
/*10*/ )
/*11*/ );
/*12*/ let matches_info = await Promise.all(promises);
/*13*/ const matches_rel_info = await extractRelevantMatchData(matches_info);
/*14*/ return matches_rel_info
/*15*/ }
/*16*/
/*17*/
/*18*/ async function extractRelevantMatchData(matches_info) {
/*19*/ list = []
/*20*/ await matches_info.map( async (match_info) => {
/*21*/ const {time, id, localteam_id, visitorteam_id, venue_id}=match_info.data.data;
/*22*/ let stadium_info = await getStadiumName(venue_id)
/*23*/ list.push({
/*24*/ match_id: id,
/*25*/ date: time.starting_at.date.split('-').reverse().join('/'),
/*26*/ hour: time.starting_at.time.split(':').slice(0,2).join(':'),
/*27*/ host_team: localteam_id,
/*28*/ away_team: visitorteam_id,
/*29*/ stadium: stadium_info,
/*30*/ })
/*31*/ })
/*32*/ return list
/*33*/ }
/*34*/
/*35*/ async function getStadiumName(venue_id){
/*36*/ const venue_info = await axios.get(`${api_domain}/venues/${venue_id}`, {
/*37*/ params: {
/*38*/ api_token: process.env.api_token,
/*39*/ },
/*40*/ })
/*41*/ return venue_info.data.data.city + ',' + venue_info.data.data.name;
/*42*/ }
/*43*/
/*44*/ (async()=>{return await getMatchesInfo([1,2,3])})
解决方案
推荐阅读
- dynamics-crm - CRM Dynamics 365 中的工作流每天晚上 10 点触发
- substrate - Substrate:如何验证未签名的外部变量的发起者?
- javascript - 如何修复页面上的逐节滚动?
- c# - 在实体框架 GroupBy 中使用自定义扩展方法
- python - 我需要求解集合元素并集的一般方程,以计算 python 中集合的概率
- mysql - 根据现有查询创建表并指定数据类型
- flutter - 如何在flutter中实现树视图
- python - SparkException:作业因阶段失败而中止:
- css - 使用 vuetify 在 Vue 中的开发和生产之间的 css 是不同的
- git - git子模块更新失败