【问题标题】:What does ()=>async()=>{} mean?()=>async()=>{} 是什么意思?
【发布时间】:2020-06-26 17:22:14
【问题描述】:

我对那个 redux thunk 操作感到困惑:

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()=>{}

您能否提供该表达式的任何文章链接? 谢谢

【问题讨论】:

标签: ecmascript-6 redux redux-thunk


【解决方案1】:

它是一个返回另一个(异步)函数的函数。

忽略箭头函数和常规函数之间this 的语义差异,用常规函数编写相同内容的一种可能更清晰的方法是:

const getChannels = function () {
  return async function (dispatch, getState) {
    // ...
  }
}

调用者将调用getChannels() 并返回一个函数,然后也可以调用该函数。

const innerFunction = getChannels()
await innerFunction(dispatch, getState)

【讨论】:

  • 我注意到你回答你很棒
【解决方案2】:

const getChannels = () => async() => {}

某种程度上等于:

function getChannels() {
  return async function() {

  }
}

使用箭头函数(改变this 的用法)& getChannels 是常量块级变量。

【讨论】:

    猜你喜欢
    • 2023-01-19
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2017-06-11
    • 2018-03-05
    相关资源
    最近更新 更多