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

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

如何等待來自 async/await 去抖動 axios 調用的數據

如何等待來自 async/await 去抖動 axios 調用的數據

HUWWW 2022-10-13 16:12:26
我正在嘗試使用 lodash 的去抖動功能從 API 請求中返回去抖動的搜索結果,但繼續undefined從調用中獲取。這是我的代碼,請幫忙;const searchSuggestionsRequest = async (input) => {  const params = {   userInput: encodeURIComponent(input),  };   const { data } = await axios.get(`${BASE_URL}/api/location`, { params });  return data;}; const debouncedSuggestionsRequest = _.debounce(searchSuggestionsRequest, 500); const fetchSearchSuggestions = (input) => { return debouncedSuggestionsRequest(input);};handleSearchSuggestions = async (input) => {  const searchObj = await fetchSearchSuggestions(input);  console.log('searchObj', searchObj); };handleSearchSuggestions()
查看完整描述

1 回答

?
神不在的星期二

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

您期望該debounce函數返回原始函數的結果,或者在您的情況下返回已解決的承諾。但這不是 debounce 功能的工作方式。

debounce 函數用它自己的代碼包裝你的函數,它會檢查我們的 not 中是否有任何新的調用文件。一段時間后,您的功能最終會啟動。但它不能返回該函數的結果。

您需要定義一個更全局的范圍(或至少與您的函數重疊的范圍)變量,并在您獲得 axios 結果的函數中設置該變量。

你的問題仍然是你不能等待結果,所以你的 console.log 仍然是未定義的。我個人是在 Vue 中開發的,我可以在變量上設置一個反應觀察者。


查看完整回答
反對 回復 2022-10-13
  • 1 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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