您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页js 数组for循环请求接口,并把返回数据放进新数组

js 数组for循环请求接口,并把返回数据放进新数组

来源:叨叨游戏网

需求:用一个数组中的每个值去循环请求接口,获取对应数据放进新数组

举个栗子可能更好理解:老师想知道每个同学的成绩,然后有个接口是需要用同学的id去拿到对应的分数。

那么,已知数组是:

[1, 2, 3, 4] // 同学id数组

目标数组是:

[
	{ id: 1, name: '张三', score: 98 },
	{ id: 2, name: '李四', score: 99 },
	{ id: 3, name: '王五', score: 99 },
	{ id: 4, name: '老六', score: 100 },
]

解决:

使用 asyncawait


methods: {
	async handleGoods(arr) {
      	let idArr = [1, 2, 3, 4];
		let scoreArr = [];
		for (let i = 0; i < idArr.length; i++) {
	  		let data = await this.getScore(i);
	  		scoreArr.push({
	    		id: idArr[i],
	    		name: data.name,
	    		score: data.score,
	  		})
		}
    },
    
	async getScore(id) {
		return await new Promise((resolve, reject) => {
			// 请求接口
			getScore({
				id: id,
        	}).then(res => {
          		resolve(res.data);
        	}).catch(() => {
          		reject({});
        	})
      	});
    },
}

总结:

要在循环中使用asyncawait,可以使用for…of 或者 for 循环, while循环等,不能使用foreach,因为在 forEarch 里执行 await 会并行的。

相关资料:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务