该应用程序由 Next.js 运行。我有一个 useQueries 钩子:const userQueries = useQueries({ queries: user.contacts.map((contactId: string) => ({ queryKey: ['contact', conta...
该应用程序由 Next.js 运行。
我有一个 useQueries 钩子:
const userQueries = useQueries({
queries: user.contacts.map((contactId: string) => ({
queryKey: ['contact', contactId],
queryFn: () => getUserById(contactId),
}))
});
api.ts 文件中的函数“getUserById”:
export async function getUserById(userId: string) {
const supabase = createClient();
let {data} = await supabase
.from('users')
.select()
.eq('id', userId);
return data && data[0]
}
我发现当我以这种方式加载数据时,它会按顺序加载而不是并行加载。
我尝试将 api 函数设为非异步,以便每个请求不会等待前一个请求,但 Next.js 禁止在没有“async”前缀的情况下执行服务器操作。有办法解决这个问题吗?
我强烈建议您不要将 Cloud Function 中的 React 仅用于生成 HTML 电子邮件正文。引入所需的所有依赖项是疯狂的,而且您几乎肯定会陷入依赖地狱,因为许多 React 或其软件包都假设它们是在浏览器环境中执行的,而 Cloud Functions 则并非如此。
我建议你找一些不依赖 React(或任何其他重型 UI 框架)的 NodeJS 包。也许是像 email-templates ?
您 也许 能够让上述代码最终解决所有 TypeScript 警告/错误并安装所有正确的依赖项,但对于本质上只是对 HTML 主体进行搜索和替换的工作而言,这需要耗费大量的技术。