第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

React:如何強(qiáng)制一個(gè)函數(shù)在另一個(gè)函數(shù)完全完成后運(yùn)行?

React:如何強(qiáng)制一個(gè)函數(shù)在另一個(gè)函數(shù)完全完成后運(yùn)行?

catspeake 2023-03-24 16:22:38
在這個(gè) React Pomodoro Clock 中,有一個(gè)函數(shù)countDown。其中有一個(gè)函數(shù)叫做three. 當(dāng)前,this.setState({ init: 'break' }); 在 中設(shè)置時(shí)two,three立即發(fā)生。但是,three應(yīng)該等到two完成。任何幫助將不勝感激。
查看完整描述

3 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊

您需要使它們異步。


喜歡...


const one = async () => {

  //some code

return

}

const two = async () => {

  //some code

return

}

const three = async () => {

  //some code

return

}

然后你可以...


one().then(two).then(three)


查看完整回答
反對(duì) 回復(fù) 2023-03-24
?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊

解決方案:


使用數(shù)組來保存狀態(tài)和持續(xù)時(shí)間:


const states = [ { name: 'session', duration: 1500 }, { name: 'break', duration: 300 } ]

交替數(shù)組的索引以在會(huì)話和中斷之間交替。


countDown(id){

    // set the function to a variable and set state to it, so the function

    // can be paused with clearInterval()

    var intervalFunc = setInterval(() => down(this.state.timeLeftSeconds--), 1000);

    this.setState({intervalFunc: intervalFunc});


    const down = (time) =>

    {


      if(time > 0){

        // converts seconds to MM:SS at every t-minus

        this.setState({ timeLeft: secondsToMins(time)});

        console.log(time);

        console.log(this.state.timeLeft);

      }


      if (time <= 0) {

        this.setState({ timeLeft: secondsToMins(time)});

        let sound = document.getElementById(id).childNodes[0];

        sound.play();


        let stateIndex = (this.state.stateIndex + 1) % states.length;

        this.setState({ stateIndex: stateIndex});

        this.setState({ timeLeftSeconds: states[stateIndex].duration});

        this.setState({ init: states[stateIndex].name});

        console.log(this.state.init);

      }

    }

  }


查看完整回答
反對(duì) 回復(fù) 2023-03-24
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以通過使函數(shù)返回 aPromise并使用async / await關(guān)鍵字等到它們完成后再開始下一個(gè)來做到這一點(diǎn)。


const setDelay = delay => new Promise(resolve => {

  console.log(`Process running for ${delay}`);

  setTimeout(() => {

    console.log('Process done');

    resolve();

  }, delay);

});


(async () => {

  

  await setDelay(2000);

  await setDelay(3000);

  await setDelay(1000);

  

})();


或者你可以不用async / await并鏈接承諾。


const setDelay = delay => new Promise(resolve => {

  console.log(`Process running for ${delay}`);

  setTimeout(() => {

    console.log('Process done');

    resolve();

  }, delay);

});


setDelay(3000)

  .then(() => setDelay(1000))

  .then(() => setDelay(4000));


或者只是使用良好的老式回調(diào)。但我會(huì)選擇上述之一。


查看完整回答
反對(duì) 回復(fù) 2023-03-24
  • 3 回答
  • 0 關(guān)注
  • 251 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)