3 回答

TA貢獻1811條經驗 獲得超4個贊
所有進入myFetch里的請求都會被緩存進一個數(shù)組
function AjaxFuc() {
let flag = true;
const bufferArray = [];
return function myFetch(i) {
if (flag) {
flag = false;
setTimeout(() => {
console.log(i);
flag = true;
if ((i = bufferArray.shift() )!== undefined) {
myFetch(i);
}
}, i % 2 === 0 ? 200 : 300);
} else {
bufferArray.push(i);
}
}
}
var myFetch = AjaxFuc();
let a = [1, 2, 3, 4, 5];
a.map((v, i) => {
this.myFetch(v);
})

TA貢獻1852條經驗 獲得超7個贊
const o={
ajaxFun:function(i){
return new Promise((resolve,reject)=>{
setTimeout(function(){
console.log(i);
resolve(i);
},i%2==0?200:300)
});
},
mounted:function(){
const a=[1,2,3,4,5,6];
var g=a[Symbol.iterator]();
var me=this;
function next(){
var v=g.next().value;
if(v){
me.ajaxFun(v).then(next);
}
}
next();
}
}
o.mounted();
添加回答
舉報