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