为什么不用await关键字就可以访问useFetch的返回值?

问题描述 投票:0回答:1

问题

我正在使用Nuxt3。

useFetch
用法是这样的:

const { data, pending, error, refresh } = await useFetch('...')

但是,我也可以像这样使用

data
pending
error
refresh

const { data, pending, error, refresh } = useFetch('...')

const response = useFetch('...')
时,
response instanceof Promise
true
,所以返回值应该是
Promise
或者子类。

我不知道这种行为,你能告诉我为什么吗?

环境

  • nuxt:3.6.5

谢谢你。

nuxt.js
1个回答
0
投票

useFetch()
返回一个 Promise,允许您等待其值准备好。
await
(或
then()
)等待 Promise 解析并直接返回值。

当您运行此命令时:

const { data, pending, error, refresh } = await useFetch('...')

您从

useFetch
获得 Promise 并等待它通过
await
解决以直接获取值,而

const x = useFetch('...')

跳过等待步骤,只保存 Promise,您可以等待或稍后在代码中使用。

您可以在 MDN 上阅读有关 Promises

await
的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.