vue如何解決多個異步請求問題
vue一個頁面很多接口時,異步請求的優(yōu)化
1.使用 Promise.all()
Promise.all() 方法接收一個promise的iterable類型(注:Array,Map,Set都屬于ES6的iterable類型)的輸入,并且只返回一個Promise實例, 那個輸入的所有promise的resolve回調的結果是一個數組。
這個Promise的resolve回調執(zhí)行是在所有輸入的promise的resolve回調都結束,或者輸入的iterable里沒有promise了的時候。
它的reject回調執(zhí)行是,只要任何一個輸入的promise的reject回調執(zhí)行或者輸入不合法的promise就會立即拋出錯誤,并且reject的是第一個拋出的錯誤信息
let p1 = new Promise((resolve, reject) => {
getNumber()
resolve('成功了p1')
})
let p2 = new Promise((resolve, reject) => {
getName()
resolve('成功了p2')
})
let p3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'foo');
});
Promise.all([p1, p2, p3]).then((result) => {
console.log(result) // ['成功了p1', '成功了p2', 'foo']
}).catch((error) => {
})Promise.all 在任意一個傳入的 promise 失敗時返回失敗。
例如:
如果你傳入的 promise中,有四個 promise 在一定的時間之后調用成功函數,有一個立即調用失敗函數,那么 Promise.all 將立即變?yōu)槭 ?/p>
var p1 = new Promise((resolve, reject) => {
setTimeout(resolve, 1000, 'one');
});
var p2 = new Promise((resolve, reject) => {
setTimeout(resolve, 2000, 'two');
});
var p3 = new Promise((resolve, reject) => {
reject('reject');
});
Promise.all([p1, p2, p3]).then(values => {
console.log(values);
}).catch(reason => {
console.log(reason)
});2.Promise.race(iterable) 方法返回一個 promise
一旦迭代器中的某個promise解決或拒絕,返回的 promise就會解決或拒絕。
var p1 = new Promise(function(resolve, reject) {
setTimeout(resolve, 500, "one");
});
var p2 = new Promise(function(resolve, reject) {
setTimeout(resolve, 100, "two");
});
Promise.race([p1, p2]).then(function(value) {
console.log(value); // "two"
// 兩個都完成,但 p2 更快
});3.Promise.all()與Promise.race()請求時的區(qū)別
Promise.all()適合于后面的異步請求接口依賴前面的接口請求的數據時使用。Promise.race()沒有先后順序,那個先請求回來那個先顯示
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue-devtools?開發(fā)工具插件之支持vue3?chrome?瀏覽器插件
這篇文章主要介紹了vue-devtools?開發(fā)工具插件之支持vue3?chrome?瀏覽器插件,用這個版本主要是為了支持vue3?推薦直接下載,文中給大家提供了下載地址,感興趣的朋友跟隨小編一起看看吧2022-01-01
Vue3中createWebHistory和createWebHashHistory的區(qū)別詳析
這篇文章主要給大家介紹了關于Vue3中createWebHistory和createWebHashHistory區(qū)別的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2023-06-06
vue項目前端加前綴(包括頁面及靜態(tài)資源)的操作方法
這篇文章主要介紹了vue項目前端加前綴(包括頁面及靜態(tài)資源)的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-12-12

