javascript - 我可以将异步函数作为回调传递给异步函数吗?

标签 javascript reactjs

我在任何地方都找不到这个问题的答案......

我正在尝试使用 setState 来更新我的应用程序的状态,但是,我需要在 setState 完成后调用一个 async 函数。
我可以在 setState 的回调中await async 函数吗?

 setState({foo: bar}, async () => {await doStuff()});

同时假设这可行,我可以依赖 setStatedoStuff 被调用之前完成吗,我可以依赖 doStuff等待

最佳答案

是的,确实可以。异步函数的特殊之处在于它们总是返回 Promises,因此特别是对于返回值不重要的函数(例如回调),您可以安全地放入异步函数,它会按预期工作。

更进一步,您甚至可以使用异步函数作为您的 componentDidMountcomponentWillReceiveProps(但仍然不是 render,它期望返回一个 JSX 元素,而不是 Promise。

关于javascript - 我可以将异步函数作为回调传递给异步函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52864065/

相关文章:

javascript - 将字符串转换为对象键名

html - 使用下一个图像组件保留图像的纵横比

javascript - 如何解决使用 useState 并获取 "Too many re-renders. React...."的函数调用

javascript - 在 Javascript 变量(和 googlemaps 地理编码器)上使用 split()

javascript - Javascript 中 slice() 函数如何与 push() 函数一起使用?

javascript - 隐藏和显示不适用于悬停()?

reactjs - 如何使用从 createEntityAdapter 生成的 selectById 选择器

javascript - 从 parent 到 child 的传递功能

javascript - ESLint 错误 - ESLint 找不到配置 "react-app"

javascript - 试图让我的输出显示在正文部分,格式包括页眉、正文(带背景)和页脚