我正在嘗試在 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條經驗 獲得超6個贊
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 nil
。fetch
僅供參考,在v8go 文檔中有一個實施示例。
- 1 回答
- 0 關注
- 377 瀏覽
添加回答
舉報
0/150
提交
取消