Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调用异步javascript函数_Javascript_Go_V8 - Fatal编程技术网

如何调用异步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)

我正在尝试运行一个异步javascript函数,并在Go中得到它的结果。问题是异步函数返回了一个承诺,我无法在Go中解决这个问题。我想要的是函数等待得到结果,然后正常返回,即使用同步接口包装异步函数。例如:

Javascript:

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