在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 同一個(gè)接口多次觸發(fā),怎么讓他們返回結(jié)果后在觸發(fā)第二次,而不是并行觸發(fā)

同一個(gè)接口多次觸發(fā),怎么讓他們返回結(jié)果后在觸發(fā)第二次,而不是并行觸發(fā)

clipboard.png
最后結(jié)果要求輸出12345,最好只在接口函數(shù)里面改,因?yàn)橛锌赡?,外面是多個(gè)地方會(huì)調(diào)用

回答
編輯回答
神曲

AjaxFuc 需要一個(gè) callback 參數(shù),如果沒(méi)有,那就加上。剩下的,順序控制什么的放到 callback 里就好了。

2018年4月7日 05:54
編輯回答
貓館

所有進(jìn)入myFetch里的請(qǐng)求都會(huì)被緩存進(jìn)一個(gè)數(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);
})
2017年10月7日 02:38
編輯回答
我以為
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();
2017年12月16日 18:12