()=>async()=> 是啥意思?

Posted

技术标签:

【中文标题】()=>async()=> 是啥意思?【英文标题】: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()=>

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

【问题讨论】:

这是一个返回函数的函数(本例中为异步)。阅读 redux-thunk 文档。 这有帮助吗? ***.com/a/42964310/1871033 - w3schools.com/js/js_arrow_function.asp 这能回答你的问题吗? Syntax for async arrow function 【参考方案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 是常量块级变量。

【讨论】:

以上是关于()=>async()=> 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

“>>”是啥意思? [复制]

“somevar >> 0”是啥意思?

-> 在 C++ 中是啥意思? [复制]

hibyte = Value >> 8 是啥意思?

C语言中“sync();”是啥意思?

“==>”在coq中是啥意思?