我必须等待已经异步的useEffect中的异步函数吗?

保罗·阿斯蒙

假设我在下面有以下代码,我在函数usersaApi.getUsersId中将其称为useEffect函数,是否必须使响应(因为它返回值,而不是Promise)成为异步函数?

const usersApi = {
  getUserIds: async storyId => {
    const result = await axios
      .get(`${users + userId}.json`)
      .then(({ data }) => data);

    return result;
  },
}

useEffect(() => {
    const fetchData = async () => {
      await usersApi.getUserIds().then(data => setUserIds(data));
    };

    fetchData();
}, []);

使用之间还有什么区别:

const fetchData = async () => {
    await usersApi.getUserIds().then(data => setUserIds(data));
};

const fetchData = async () => {
     const result = await usersApi.getUserIds().then(data => setUserIds(data));

     return result;
};

我想我只能等待响应而不返回结果,对不对?这里有两个问题:

1)我是否必须在已经异步/等待的函数上使用async / await 2)在已经返回数据而不是承诺的函数上使用await和return之间的区别

尼古拉斯塔

1)我是否必须在已经异步/等待的函数上使用异步/等待

取决于您要使用哪种语法。您可以使用async / await,也可以使用较旧的.then样式。我个人觉得异步等待样式更容易理解,所以我个人更喜欢它。但是,我建议不要混合使用两种语法。几乎从来没有必要这样做,而这最终会使代码更难以理解。要么写:

const fetchData = async () => {
  const data = await userApi.getUserIds();
  setUserIds(data);
}

要么:

const fetchData = () => {
  userApi.getUserIds.then(data => setUserIds(data));
}

2)在已经返回数据而非承诺的函数上使用等待和返回之间的区别。

存在Async / await来简化使用Promise的语法。如果您不使用诺言,则不需要异步/等待。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

等待仅在异步函数中有效,同时我已经在函数中放置了“异步”

来自分类Dev

异步等待-我在做吗?

来自分类Dev

在异步功能中,为什么我必须等待?

来自分类Dev

我在以下代码中获得异步的好处并等待吗

来自分类Dev

在 useEffect 中有 2 个异步等待函数可以吗?

来自分类Dev

异步等待与 SetState ......我这样做对吗?

来自分类Dev

我如何“等待”异步super()构造函数?

来自分类Javascript

对useEffect中的异步函数的React Hook警告:useEffect函数必须返回清除函数,否则不返回任何内容

来自分类Dev

我必须等待Swift中的didReadRSSI()函数吗?

来自分类Dev

等待异步功能中的MySQL查询吗?

来自分类Dev

包装在UseEffect中的React异步函数

来自分类Dev

我可以在异步函数中引发错误吗?

来自分类Dev

为什么我们必须等待C#中的异步方法调用

来自分类Dev

我可以等待1个等待中的2个异步操作吗?

来自分类Dev

等待异步函数在Angular中完成

来自分类Dev

节点嵌套函数中的异步/等待?

来自分类Dev

嵌套的异步/等待函数

来自分类Dev

异步/等待函数

来自分类Dev

当我没有在异步函数前等待时,try catch块会捕获错误吗?

来自分类Dev

我可以使用 TypeScript 等待异步操作循环在同步函数内完成吗?

来自分类Dev

NodeJS:在异步/等待中更好地使用回调函数或同步函数吗?

来自分类Dev

不明白为什么我的异步等待在我的 lambda 函数中不起作用

来自分类Dev

等待JS函数中的异步调用结束。(jQuery.Deferred吗?)

来自分类Dev

异步编程:在不异步的函数中等待

来自分类Dev

测试异步异步等待JavaScript函数

来自分类Dev

javascript:异步函数问题(异步等待循环)

来自分类Dev

等待JS中的异步

来自分类Dev

Axios中的异步/等待

来自分类Dev

Redux中的异步/等待

Related 相关文章

  1. 1

    等待仅在异步函数中有效,同时我已经在函数中放置了“异步”

  2. 2

    异步等待-我在做吗?

  3. 3

    在异步功能中,为什么我必须等待?

  4. 4

    我在以下代码中获得异步的好处并等待吗

  5. 5

    在 useEffect 中有 2 个异步等待函数可以吗?

  6. 6

    异步等待与 SetState ......我这样做对吗?

  7. 7

    我如何“等待”异步super()构造函数?

  8. 8

    对useEffect中的异步函数的React Hook警告:useEffect函数必须返回清除函数,否则不返回任何内容

  9. 9

    我必须等待Swift中的didReadRSSI()函数吗?

  10. 10

    等待异步功能中的MySQL查询吗?

  11. 11

    包装在UseEffect中的React异步函数

  12. 12

    我可以在异步函数中引发错误吗?

  13. 13

    为什么我们必须等待C#中的异步方法调用

  14. 14

    我可以等待1个等待中的2个异步操作吗?

  15. 15

    等待异步函数在Angular中完成

  16. 16

    节点嵌套函数中的异步/等待?

  17. 17

    嵌套的异步/等待函数

  18. 18

    异步/等待函数

  19. 19

    当我没有在异步函数前等待时,try catch块会捕获错误吗?

  20. 20

    我可以使用 TypeScript 等待异步操作循环在同步函数内完成吗?

  21. 21

    NodeJS:在异步/等待中更好地使用回调函数或同步函数吗?

  22. 22

    不明白为什么我的异步等待在我的 lambda 函数中不起作用

  23. 23

    等待JS函数中的异步调用结束。(jQuery.Deferred吗?)

  24. 24

    异步编程:在不异步的函数中等待

  25. 25

    测试异步异步等待JavaScript函数

  26. 26

    javascript:异步函数问题(异步等待循环)

  27. 27

    等待JS中的异步

  28. 28

    Axios中的异步/等待

  29. 29

    Redux中的异步/等待

热门标签

归档