我在一个Javascript文件中有一个异步的数据库登录方法,这个函数是由一个小文件远程触发的。如果该方法返回一个错误,我希望错误被发送到我的svelte文件,然后显示在一个段落元素。
我尝试创建一个名为errorMessage的错误变量,并在函数返回错误时将错误消息分配给它,但当我在svelte文件中调用login方法后尝试console.log错误时,它会记录errorMessage已分配的初始值。
苗条:
<script>
import { createAccount, login, errorMessage } from '$lib/supabaseClient.js'
login(email, password);
console.log(errorMessage)
</script>
JS:
export let errorMessage;
export const login = async (email, password) => {
const { data, error } = await supabase.auth.signInWithPassword({
email,
password
})
errorMessage = error;
}
1条答案
按热度按时间aiazj4mn1#
当我在svelte文件中调用login方法后尝试console.log错误时,它会记录errorMessage已分配的初始值。
这是因为
login()
是一个async
函数。在您的代码中,console.log()
在login()
执行之前执行。通过添加
await
等待login()
函数完成,您可能会得到不同的结果,首先: