Я использую Prismic API для получения некоторых данных, которые хочу показать в своем шаблоне Nuxt3.
Все работает нормально, просто хочу показать страницу 404 при отсутствии данных вместо ошибки 500. Я добавил проверку, если данные пусты:
<script setup>
const route = useRoute()
const name = route.params.werke;
const { client } = usePrismic()
const { data: werk } = await useAsyncData('werk', () => client.getByUID("werk", name))
if (!werk.uid) {
throw createError({ statusCode: 404, statusMessage: 'Page Not Found' })
}
</script>
Проблема в том, что в части if (!werk.uid) werk.uid ВСЕГДА пуст. Поэтому я всегда получаю эту ошибку 404. В моем шаблоне werk.uid не пуст, поэтому я предполагаю, что есть проблема, когда оператор if не может получить доступ к переменной const с помощью useAsyncData?
Есть идеи? Официальные документы рекомендуют это так же, как и я: https://v3.nuxtjs.org/getting-started/error-handling/#example-1
Я пробовал это, и это ничего не могло получить. Может быть, Prismic нужен useAsyncData? v3.prismic.nuxtjs.org/guides/basics/fetching-content
Не уверен, открыты ли ее личные сообщения, но, возможно, пришлите ей что-нибудь: twitter.com/li_hbr



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Кто-то на призмическом форуме помог мне найти решение. Это специфическая проблема Vue 3:
Вам нужно будет использовать .value после работы: (!werk.value). Вместо просто (werk.anything)
Совсем не уверен, но может попробовать этот
async () => await client.getByUID("werk", name)?