-
波斯汪
所有进入myFetch里的请求都会被缓存进一个数组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);})
-
慕姐4208626
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();
-
BIG阳
AjaxFuc 需要一个 callback 参数,如果没有,那就加上。剩下的,顺序控制什么的放到 callback 里就好了。