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

xyi*_*ous 4 javascript reactjs

我无法在任何地方找到答案....

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

 setState({foo: bar}, async () => {await doStuff()});
Run Code Online (Sandbox Code Playgroud)

同样假设这工作,我可以依靠setState完成之前doStuff被调用,我可以依靠doStuffawaitED?

Mad*_*iha 5

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

以这一步,你甚至可以有一个异步函数为您componentDidMountcomponentWillReceiveProps例如(但仍然不是render,这预计要返回一个JSX元素,不是承诺).