亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

同一個接口多次觸發,怎么讓他們返回結果后在觸發第二次,而不是并行觸發

同一個接口多次觸發,怎么讓他們返回結果后在觸發第二次,而不是并行觸發

幕布斯6054654 2019-03-15 14:11:30
最后結果要求輸出12345,最好只在接口函數里面改,因為有可能,外面是多個地方會調用
查看完整描述

3 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

所有進入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);

})


查看完整回答
反對 回復 2019-03-18
?
慕姐4208626

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();


查看完整回答
反對 回復 2019-03-18
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

AjaxFuc 需要一個 callback 參數,如果沒有,那就加上。剩下的,順序控制什么的放到 callback 里就好了。


查看完整回答
反對 回復 2019-03-18
  • 3 回答
  • 0 關注
  • 1555 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號