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

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

如何延遲調(diào)度動(dòng)作(去抖動(dòng))

如何延遲調(diào)度動(dòng)作(去抖動(dòng))

慕妹3146593 2021-12-12 16:04:49
我有一個(gè)場(chǎng)景,我需要在輸入完成兩秒后調(diào)度一個(gè)動(dòng)作。(假設(shè)用戶在沒有 2 秒間隔的情況下輸入 1000,所以我只需要在輸入 1000 和 2 秒后調(diào)度操作)。以前我使用debounce-promise來做這樣的事情,我需要從 API 獲取下拉列表,但為此我直接在組件中使用了帶有 AJAX 調(diào)用的庫(kù)。它工作正?!,F(xiàn)在我需要分派這樣的動(dòng)作。  // should be dispatched only for the last request  const getRateReq = dispatch(getRates());  const getRate = debounce(getRateReq, 2000, {    leading: false,  });  const onChange = (e) => {     setValue(e.target.value);     getRate(e.target.value);  }現(xiàn)在動(dòng)作也只在完成輸入兩秒后調(diào)度。但是隨后它會(huì)發(fā)出 1、10、100、1000 的所有請(qǐng)求(即使 1000 是在沒有兩秒間隔的情況下輸入的)。如何在 2 秒內(nèi)修復(fù)此問題并僅針對(duì)最后一個(gè)輸入調(diào)度操作?任何幫助,將不勝感激。謝謝編輯:添加了基本的 onChange 功能
查看完整描述

2 回答

?
紫衣仙女

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

你可以做這樣的事情。


let timeOut = null;

SearchFilter: (name, value) => {

    clearTimeout(timeOut);

    dispatch(SearchFilter(name, value));

    timeOut = setTimeout(() => {

            dispatch(callfunction());

        }, 2000);

    }

它將調(diào)度等待 2 秒輸入的動(dòng)作。


查看完整回答
反對(duì) 回復(fù) 2021-12-12
?
繁星淼淼

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

您需要使用 loadash 的 debounce 方法并執(zhí)行以下操作:

onChange = debounce(anyInput => {
    }, 2000);

因此,您必須在完成輸入后 2 秒后在 onchange 方法中進(jìn)行 API 調(diào)用。不確定這是您要問的嗎?


查看完整回答
反對(duì) 回復(fù) 2021-12-12
  • 2 回答
  • 0 關(guān)注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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