如何调用异步javascript函数
我正在尝试运行一个异步javascript函数,并在Go中得到它的结果。问题是异步函数返回了一个承诺,我无法在Go中解决这个问题。我想要的是函数等待得到结果,然后正常返回,即使用同步接口包装异步函数。例如: Javascript:如何调用异步javascript函数,javascript,go,v8,Javascript,Go,V8,我正在尝试运行一个异步javascript函数,并在Go中得到它的结果。问题是异步函数返回了一个承诺,我无法在Go中解决这个问题。我想要的是函数等待得到结果,然后正常返回,即使用同步接口包装异步函数。例如: Javascript: async func foo() { const res = await moo() return res } 在Go中,我使用的是rogchap.com/v8go,因此代码如下所示: ctx, _ := v8go.NewContext(nil)
async func foo() {
const res = await moo()
return res
}
在Go中,我使用的是rogchap.com/v8go,因此代码如下所示:
ctx, _ := v8go.NewContext(nil)
_, err := ctx.RunScript(`....definition of foo()`, "main.js")
_, err = ctx.RunScript("const result=foo()", "main.js")
fmt.Printf("result= %s\n", result.String())
问题是,结果永远是一个未解决的承诺。有没有一种方法可以“等待”直到承诺得到解决,或者用另一种方法绕过它?@Sphinx我认为你不能在js的异步函数之外使用wait