我对redux重击动作感到困惑:
import axios from 'axios';
export const GET_CHANNELS = 'GET_CHANNELS'
export const getChannels = () => async (dispatch, getState) => {
const res = await axios.get('https://v-forum-api.bahdcasts.com/api/channels')
dispatch({
type: GET_CHANNELS,
payload: res.data
})
}
以下构造是什么意思?
const getChannels=()=>async()=>{}
您能否提供该表达式的任何文章链接? 谢谢
答案 0 :(得分:2)
它是一个返回另一个(异步)函数的函数。
忽略箭头功能和常规功能之间this
的语义差异,用常规功能编写相同内容的更清晰方法可能是:
const getChannels = function () {
return async function (dispatch, getState) {
// ...
}
}
调用方将调用getChannels()
并返回一个函数,然后也可以调用该函数。
const innerFunction = getChannels()
await innerFunction(dispatch, getState)
答案 1 :(得分:0)
subRunner: Runner<Options>
在某种程度上等于:
const getChannels = () => async() => {}
使用箭头功能(可更改function getChannels() {
return async function() {
}
}
的用法)和getChannels是恒定的块级变量。