Javascript - 访问异步函数的返回值以在 Svelte 组件中使用它

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

我有以下代码(+layout.svelte):


    import { getLang } from "$lib/locale";
    import { browser } from "$app/environment";

    const loadLang = async () => {
        if (browser) {
            // return await getLang(document.documentElement.lang, "home").then( function (data: any) {
            //  const nav = JSON.stringify(data.nav);
            //  console.log(nav)
            //  return nav;
            // });
            const initLocale= await getLang(document.documentElement.lang, "home");
            return initLocale.json();
        }
    };

    const a = loadLang();
    console.log(a);

此代码片段的作用是检测浏览器语言、请求的路由,然后搜索与该语言和页面对应的正确 JSON 文件。但有一个问题,我无法访问异步

loadLang()
的语言数据以在组件的 HTML 元素中使用它,除了这里许多答案所述之外,我没有办法真正做到这一点(这不是什么)我正在寻找),我想要的是一种访问上述函数的返回值并在 HTML 元素中使用它的方法?

javascript asynchronous svelte
1个回答
0
投票

你的异步函数将返回一个 Promise。您应该使用回调来处理其结果。

像这样:

loadLang().then(result => {
  // and here do whatever you want with the result, log it for example
  console.log(result);
})
© www.soinside.com 2019 - 2024. All rights reserved.