redux - prevent too many request


By current implementation, many requests are sent


In order to prevent too many redundant requests, use lodash memoize to reduce.
npm install -save lodash

Then change src/actions/index.js
import _ from 'lodash'

// assign fetchUser to memoize, so that function instance is the same
export const fetchUser = (userId) => dispatch => _fetchUser(userId, dispatch);

// define a function to adapt memoize
const _fetchUser = _.memoize(async (userId, dispatch) => {
    const response = await jsonPlaceholder.get(`/users/${userId}`)

    dispatch({type:'FETCH_USER', payload: response.data})
})

request and response are cached, so no redundant request will be sent


沒有留言:

張貼留言

別名演算法 Alias Method

 題目 每個伺服器支援不同的 TPM (transaction per minute) 當 request 來的時候, 系統需要馬上根據 TPM 的能力隨機找到一個適合的 server. 雖然稱為 "隨機", 但還是需要有 TPM 作為權重. 解法 別名演算法...