axios 数组映射回调

Posted

技术标签:

【中文标题】axios 数组映射回调【英文标题】:Axios array map callback 【发布时间】:2016-03-28 02:25:53 【问题描述】:

在我的 react ES6 应用程序中,我需要执行以下操作: 获取某个组织的 git hub 成员列表,然后获取每个组织的信息详细信息。

代码:

handleDevelopers(res)
		let lista = res.data.map(function(result) 
	      	axios.get('https://api.github.com/users/'+result.login)
	      	.then(function (response) 
	      		console.log(response.data.name);
	      		return <GitUser key=response.data.id name=response.data.name/>;
	      	);

	        
	    );

	    this.setState(
	        users: lista
	    );
	

	componentWillMount() 
	  	axios.get('https://api.github.com/orgs/:orgname/members')
	    .then((jsonRes) => this.handleDevelopers(jsonRes))
	

地图完成后如何设置状态?

【问题讨论】:

【参考方案1】:
handleDevelopers(res)
    let _self = this
    axios.all(res.data.map(function(result) 
        return axios.get('https://api.github.com/users/'+result.login)
        .then(function (response) 
            console.log(response.data.name);
            return <GitUser key=response.data.id name=response.data.name/>;
        );      
    )).then(function(lista)
         _self.setState(
          users: lista
        );     


componentWillMount() 
    axios.get('https://api.github.com/orgs/:orgname/members')
    .then((jsonRes) => this.handleDevelopers(jsonRes))

【讨论】:

以上是关于axios 数组映射回调的主要内容,如果未能解决你的问题,请参考以下文章

无法在 axios 回调中更正此问题 [重复]

Bug解决了axios.get('...').then(),回调不执行的Bug

在设置选项内的 axios 响应回调中更新反应数据 - Vue 3

Tabulator + Nuxt.js:如何在回调中使用 axios?

如何在没有任何 vue 库的情况下在 vue 回调中获取 http 响应标头(axios)

axios如何进行跨域以及对返回格式为回调函数字符串的处理