为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Golang 中使用 Fetch in JavaScript (V8go, Otto)?

如何在 Golang 中使用 Fetch in JavaScript (V8go, Otto)?

Go
慕标5832272 2023-01-03 10:12:56
我正在尝试在 Golang 函数内运行 JavaScript,并使用 fetch 在 Javascript 上下文中通过 API 获取 JSON。我使用以下代码在Otto中进行了尝试:import "github.com/robertkrimen/otto"    vm := otto.New()    vm.Run(`    function tryfunc() {        console.log("Started");        fetch('https://www.example.com/APIendpoint');        console.log("Success");    }    tryfunc();    `)Otto 使用起来非常简单,但看起来 Otto 是一个事件总线并且不管理 fetch。我现在正在尝试使用以下代码使用v8go :import v8 "rogchap.com/v8go"ctx := v8.NewContext()ctx.RunScript(`fetch("https://www.example.com/APIendpoint"), ""`)但它需要另一个论点。文档非常不清楚,即使是最简单的 JS 脚本也很难理解如何运行。有人可以帮忙吗?
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

Otto 和 v8 实现ECMAScript,从当前的 13.0 版本开始不需要内置函数fetch(请参阅:https ://262.ecma-international.org/13.0/#sec-function-properties-of-the-global-object ) ,此功能由网络浏览器实现。

我相信第二个参数只是调试输出前缀的文件名(例如:foo.js:14: undefined bar),这在解释器中很常见。

我怀疑你的脚本确实运行了,如果你打印出RunScript的输出(你忽略了两个返回值,一个 JavaScript 值和一个错误),那应该有一个“未定义的函数获取”和 value nilfetch仅供参考,在v8go 文档中有一个实施示例。


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 333 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信