我从一个我不熟悉的内部工具库导入了一个函数。这个库没有文档,我只是因为它的名称getUserDetails
而假设它是异步的。我认为它正在执行一个 http 请求。
我像这样在异步函数中使用它
async function getAllUserInfo(event) {
const details = await getUserDetails(event);
// other stuff
}
我在我的假设上错了。一位同事指出它不是异步的。最终我做出了更改,但当我错误地使用它时,它仍然有效。我能够等待同步函数并返回正确的数据。
我的问题是关于它如何工作的。在同步函数前加上await会让它在下一个tick中解决,还是会像同步函数一样立即返回?
如果 await 操作符后面的表达式不是 Promise,它会被转换为一个已解决的 Promise。
因此,如果我理解正确的话,如果使用 await 在同步函数前面,它会异步返回该值。 - skellertor