promise & rxjs如何實現多異步請求完成後處理這些異步數據(合併多異步請求爲一個請求)

一些業務須要異步請求多條數據後再基於這些數據作一些處理,簡單的作法的就是多個異步請求的嵌套,若是有上那麼4,5個異步請求一層套一層,開發界面就會變得慘不忍睹,更致命的是異步請求是完成一個後去請求另外一個比較耗時,徹底喪失了異步請求的優點,且難維護,難理解,難閱讀。下面介紹下如何用ES6中promise和reactiveJs如何實現多個異步請求後並處理這些異步數據。

promise all()

const pro1 = new Promise((resolve, reject)=>{resolve(1);});
const pro2 = new Promise((resolve, reject)=>{resolve(2);});
const pro3 = new Promise((resolve, reject)=>{resolve(3);});

//三個數據請求
Promise.all(pro3 ,pro2 ,pro1 ).then(
    (data) => {  
        //把三個異步請求返回數據合成一個數組
        //返回數據的順序和`all()`裏面的異步參數順應一致
        console.log(data);  // [3,2,1]
    },
    error(err)
).catch(e =>{})
 .finally(()=>{})

rxjs forkJoin()

let obs1 = of(1)
let obs2 = of(2)
let obs3 = of(3)
//當前語法爲rxjs@^6
forkJoin(obs3,obs2,obs1).subscribe(
    data => {
        //把三個異步請求返回數據合成一個數組
        //返回數據的順序和`forkJoin()`裏面的異步參數順應一致
        console.log(data)   // [3,2,1]
    },
    err => {},
    () => {}
)

👍👍👍👍👍若是能幫助到小夥伴的話歡迎點個贊👍👍👍👍👍
👍👍👍👍👍若是能幫助到小夥伴的話歡迎點個贊👍👍👍👍👍react

相關文章
相關標籤/搜索