我正在使用 Svelte 和 URQL。
我在这里使用你的包文件夹中的 svelte 示例,除了我format: 'esm'
在我的rollup.config.js
.
当我在我的代码中使用时,我的 Rollup 已经将我的最终包代码分割成块import('./Component.svelte')
。
我很难做的是异步初始化 urql,如下所示:
import { initClient, dedupExchange, fetchExchange } from '@urql/svelte'
import { cacheExchange } from "@urql/exchange-graphcache";
const exchanges = [
cacheExchange({
resolvers: { /*... my resolvers*/ },
schema // I need this async, something like: await import('./schema').then(result => result.default)
}),
fetchExchange
]
export function initURQL () {
initClient({
url: 'http://localhost/graphql',
exchanges
})
}
如果我使用类似的东西:
export async function initURQL () {
const schema = await import('./schema.json').default
const exchanges = [
cacheExchange({
resolvers: {},
schema
}),
fetchExchange
]
initClient({
url: 'http://localhost/graphql',
exchanges
})
}`
App.svelte
并从中调用它;(async () => await initURQL())()
会给我错误:
Uncaught (in promise) Error: Function called outside component initialization
我怎样才能解决这个问题?