React教程,Suspense如何通过use读取promise返回值?
发布于 作者:苏南大叔 来源:程序如此灵动~

苏南大叔继续发散总结React
相关经验文章,上一篇文章说的是Context
和use
的组合。本篇文章说的是Suspense
和use
的故事。当然,Suspense
就暗含着promise
的含义,这里也不必明着说了。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。本文测试环境:nodejs@20.18.0
,create-react-app@5.0.1
,react@19.0.0
。本文试图说明和Suspense
配合的第三种组合。
前文回顾
在前面的文章里面,苏南大叔描述了下面的两种和Suspense
配合的情况了。分别是:
从上面的例子中,可以看到,Suspense
背后的原理,和promise
是密不可分的。suspense
通过fallback
参数,提供了一个问题解决前的预制组件。当suspense
内部的类似promise
机制完成后,会替换掉fallback
组件的内容。
suspense + use + promise
这个新组合的使用范例如下:

关键点解说
use
,在这个suspense
的例子中,use()
起到了一个await
的类似作用,可以拿到promise
的resolve
值。use
返回promise
的解析值,供组件内部使用。它与Suspense API
共同作用,可以显示一条临时消息,直到promise
得到解决。promise
,需要说明的就是这个new Promise()
,其中的reject()
操作是会引发异常的。而在其后紧跟的.catch()
操作,又把这个异常变成了普通的返回值。因此,这个例子的正常界面上会显示两种可能性文字。
结语
更多苏南大叔的React
经验文章,请点击苏南大叔的文章列表:


