【问题标题】:JS Arrow fuinction returns self not functionJS箭头函数返回自我不是函数
【发布时间】:2022-11-04 03:39:24
【问题描述】:

在 React 中,我使用实用程序函数来处理 api 调用。当箭头函数不再是匿名的时,它会返回一个未决的承诺,这正是我想要的。但是,当箭头函数是匿名的时,它会返回该函数。

有没有办法在一行中返回一个未决的承诺?

以下是该函数在非匿名时的样子:

const list = () => {
    let res = async () => await api.get("list");
    return res();
}

这是匿名的样子:

const list = () => {
    return async () => await api.get("list")
}

【问题讨论】:

  • 为什么不return api.get("list")

标签: javascript node.js reactjs


【解决方案1】:

在第二个示例中,您返回的是一个函数,而不是函数的结果。将函数存储在对象中并调用函数:

const list = () => {
    return (async () => await api.get("list"))();
}

【讨论】:

    【解决方案2】:

    因为您只是返回函数,而不是执行它。这个执行功能:

    res();
    

    在第二个示例中,您没有额外的一组括号来执行它。添加它们:

    const list = () => {
      return (async () => await api.get("list"))();
    }
    

    【讨论】:

      【解决方案3】:

      在第二种情况下,您将返回函数 res,而不是 res 的输出。您可以使用 IIFE 根据需要返回 res 的值:

      const list = () => {
          return (async () => await api.get("list"))()
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-30
        • 1970-01-01
        • 1970-01-01
        • 2017-08-28
        相关资源
        最近更新 更多