Javascript Can';映射循环中Axios调用的t访问值

Javascript Can';映射循环中Axios调用的t访问值,javascript,ecmascript-6,axios,Javascript,Ecmascript 6,Axios,我有一个javascript对象,其ID对应于一组库。 我使用map循环浏览它。 在每个循环中,我都会调用axios以获取当前id的库 最后,我需要一个包含所有库内容的数组 问题是,映射循环完成后,我无法访问数据。我在控制台.log(图库)中看到所有数据,但在控制台.log(图库[0].gallery)中看不到这些数据 我怀疑这一定是异步调用造成的。 我是个新手,所以我可能错过了一些简单的东西 额外信息:这是一个React原生项目,带有redux thunk 请帮忙,谢谢 export func

我有一个javascript对象,其ID对应于一组库。 我使用map循环浏览它。 在每个循环中,我都会调用axios以获取当前id的库

最后,我需要一个包含所有库内容的数组

问题是,映射循环完成后,我无法访问数据。我在控制台.log(图库)中看到所有数据,但在控制台.log(图库[0].gallery)中看不到这些数据

我怀疑这一定是异步调用造成的。 我是个新手,所以我可能错过了一些简单的东西

额外信息:这是一个React原生项目,带有redux thunk

请帮忙,谢谢

export function FetchGalleries( galleries_ids ) {

    return function (dispatch) {

        let galleries = [];
        galleries_ids.map( (record, index) =>
        {

            axios.get('https://e.dgyd.com.ar/wp-json/wp/v2/media?_embed&parent='+record.id)
              .then(response => {
                galleries.push( response );
              });

        });

        console.log(galleries); // I can see all data
        console.log( JSON.parse(JSON.stringify( galleries[0].gallery ))); // returns undefined
        dispatch({ type: FETCH_GALLERIES_SUCCESS, payload: galleries })

      }
}

最简单的解决办法是等待所有的承诺得到解决,然后处理结果

export function FetchGalleries( galleries_ids ) {

    return function (dispatch) {
        return Promise.all(galleries_ids.map( (record, index) => {
            return axios.get('https://e.dgyd.com.ar/wp-json/wp/v2/media?_embed&parent='+record.id);
        })).then(galleries => {
            dispatch({ type: FETCH_GALLERIES_SUCCESS, payload: galleries });
        });
    }
}

我可以看到所有数据
-因为控制台“位于”。。。我打赌console.log说数组的长度为零-问题是,异步。。。你玩得不对。。。除此之外,您为什么要使用
.map
。。。如果你不归还任何东西@JaromandaX是的,我读了关于这个棘手的控制台的文章,尝试了这个问题中给出的每一个解决方案,但没有成功:(你一定已经跳过了告诉你如何处理异步的部分。。。