鍍金池/ 問答/HTML/ 在react中,我想讓task01和task02循環(huán)執(zhí)行,怎么修改?

在react中,我想讓task01和task02循環(huán)執(zhí)行,怎么修改?

task01() {
        console.log('人的一生中')
        
        setTimeout(this.task02, 1000)
        
    }


    task02 () {

        var _self = this;
        console.log('兩億')

        setTimeout(_self.task01, 1000)

    }


    task03 () {
        console.log('測試任務(wù)三個月')
    }


    componentDidMount() {
            var _self = this;
            console.log('兩億')
            
            var taskStart = function(){

                console.log('任務(wù)開始了')
                setTimeout(_self.task02, 1000)

            }

            taskStart();

            //Websocket.finishConnect();
        }
    }

圖片描述

圖片描述

圖片描述

回答
編輯回答
青黛色

@美麗的e具磨嘰 報錯如上圖
圖片描述
圖片描述

task01() {
        console.log('人的一生中')

        /*
        Websocket.startConnect('/topic/bnevent', ENV['perceive'].interval, (returnData,message) => {


            console.log('|||||||---任務(wù)1------從服務(wù)器讀取數(shù)據(jù)開始---------|||||||');
            //console.log(message);
            console.log(returnData);
            console.log('|||||||---人生-----從服務(wù)器讀取數(shù)據(jù)結(jié)束---------|||||||');


        });

        //setTimeout(this.task02, 1000)
        */
    }


    task02 () {

        var _self = this;
        console.log('兩億');

        Websocket.startConnect('/topic/bnevent', ENV['perceive'].interval, '0, 0, 0', (returnData,message) => {


            console.log('|||||||---世界------從服務(wù)器讀取數(shù)據(jù)開始---------|||||||');
            //console.log(message);
            console.log(returnData);
            console.log('|||||||---任務(wù)2-----從服務(wù)器讀取數(shù)據(jù)結(jié)束---------|||||||');


        });

        setTimeout(_self.task01, 1000)

    }


    task03 () {
        console.log('測試任務(wù)三個月')
    }



    const sleep = (time) => {
        return new Promise((resolve) => {
            setTimeout(() => {
                resolve()
            }, time)
        })
    }

    async function taskStart(functionArr) {
        for (let i = 0; i <= functionArr.length; i++) {
            let task = await sleep(1000)
            if(i === 0) {
                functionArr[i].task01()
            }
            if(i === 1) {
                functionArr[i].task02()
            }
            if (i === 2) {
                i = 0
                functionArr[i].task01()
            }
            console.log(functionArr[i])
        }
    }

    componentDidMount() {

        async function asyncFunc(x) {
            return x;
        }

        asyncFunc(501)
            .then(x => console.log(x));

        async function asyncFuncEr() {
            throw new Error('有錯誤');
        }

        asyncFuncEr()
            .catch(err => console.log(err));



        this.login('1', 'qwe', 'fgh')

        //this.task03();

        console.log('任務(wù)開始了')
        setTimeout(this.task03, 1000)

        var  Stomp = {}

        var _self = this;

        Stomp.setInterval = function(interval, f) {
            return window.setInterval(f, interval);
        };

        window.Stomp = Stomp; // 全局變量 就是window屬性

        var UtilsBoolean = true; // 從服務(wù)器讀取數(shù)據(jù)


        let functionArr = [
            {
                task01:function(){
                    console.log('這個是task01')
                }
            },
            {
                task02:function(){
                    console.log('這個是task02')
                }
            }
        ]

        this.taskStart(functionArr);



        //

        /**
         * 讀取服務(wù)器的數(shù)據(jù)
         */
        if(UtilsBoolean){

            /**
             * websocket 開始發(fā)送數(shù)據(jù)
             */

            console.log('|||||||---開始接收服務(wù)器的數(shù)據(jù)---------|||||||');
            /*
            var taskStart = function(){

                console.log('任務(wù)開始了')
                setTimeout(_self.task02, 1000)

            }
            */

            //taskStart();

            //Websocket.finishConnect();
        }
    }
2017年9月17日 12:54
編輯回答
哚蕾咪
   let functionArr = [{task01:function(){console.log('這個是task01')}},{task02:function(){console.log('這個是task02')}}]
  async function taskStart(functionArr) {
    for (let i = 0; i <= functionArr.length; i++) {
        let task = await sleep(1000)
        if(i === 0) {
          functionArr[i].task01()
        }
         if(i === 1) {
          functionArr[i].task02()
        }
        if (i === 2) {
          i = 0
          functionArr[i].task01()
        }
         console.log(functionArr[i])
    }
  }

  const sleep = (time) => {
      return new Promise((resolve) => {
          setTimeout(() => {
              resolve()
          }, time)
      })
  }
2018年5月1日 12:53
編輯回答
寫榮
task01() {
        console.log('人的一生中');
        setTimeout(this.task02, 1000)
        
    }


task02 () {
        var _self = this;
        console.log('兩億');
        setTimeout(this.task01, 1000)
    }


    task03 () {
        console.log('測試任務(wù)三個月');
    }
    
    taskStart() {
                console.log('任務(wù)開始了');
                setTimeout(this.task02, 1000);
            }

    componentDidMount() {
            console.log('兩億');
            this.taskStart();
            //Websocket.finishConnect();
        }
    }
2017年11月30日 15:00