頁面同時請求多個接口實驗

沒錯,我很忙,任務很多,但是‘磨刀不誤砍柴工’。
你有沒有遇到過這種情況,當一個頁面加載的時候,需要同時請求多個接口,這裏面有的可能是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

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