页面同时请求多个接口实验

没错,我很忙,任务很多,但是‘磨刀不误砍柴工’。
你有没有遇到过这种情况,当一个页面加载的时候,需要同时请求多个接口,这里面有的可能是banner,另一个可能是下方的列表。这两个接口的结果互不干涉,并没有同步执行的必要。



原始

async function test1() {
	await A();
	await B();
};

进化

function test2() {
	testA();
	testB();
}

async function testA() {
	await A();
}

async function testB() {
	await B();
}

看到这里,你可能会问,为啥不直接请求,去掉这多余的 async 以及 await ,我也想啊,但是 AB 函数相当于 axios 返回的 Promise 对象。

另一种可能

function test3() {
	Promise.all([
		(async () =>
			await A();
		),
		(async () =>
			await B();
		)
	]);
}

我现在只知道【原始】肯定是A执行完,B才会执行,两外两种代码还不清楚是否是异步执行的,后期我会新增测试函数,统计时间区别来做检验,但我感觉【进化】和【另一种可能】的效果是一样的,甚至【进化】有可能更快于【另一种可能】……

参考链接

[1] MDN Promise.all

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章