Можно ли вызвать JS websql из go

# #go

Вопрос:

Я пытаюсь глубоко изучить GO "syscall/js" и пришел к длинному WebSQL, где у меня есть подпись функции ниже и я хочу воспроизвести ее в GO:

 tx.executeSql(SQLstatement, [], successCallback, errorCallback);  

Где tx передается через db , полный код является:

 lt;scriptgt;   var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);  db.transaction(function (tx) {   tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {   var len = results.rows.length, i;   msg = "lt;pgt;Found rows: "   len   "lt;/pgt;";   document.querySelector('#status').innerHTML  = msg;     for (i = 0; i lt; len; i  ) {   msg = "lt;pgt;lt;bgt;"   results.rows.item(i).log   "lt;/bgt;lt;/pgt;";   document.querySelector('#status').innerHTML  = msg;   }   }, null);   });  lt;/scriptgt;   

Мой подход был таким, как показано ниже: =gt; Создание gt; js.Global() для каждой функции, а затем Invoke для нее, поэтому я попробовал что-то вроде:

 package main  import "syscall/js"  var (  document js.Value )  func init() {  document = js.Global().Get("document")  }  var openDatabase = js.Global().Get("openDatabase") var transaction = js.Global().Get("transaction") var executeSql = js.Global().Get("executeSql")  type DB struct{}  func (db *DB) Open(file string) {  db = openDatabase.Invoke(file, "1.0", "Test DB", 2*1024*1024) }  func (db *DB) Query(tx string){  db.transaction.Invoke(function(tx) {   db.executeSql.Invoke(tx, [], successCallback, errorCallback);   }); }  func main() {  db := DB.Open('mydb')  db.Query('SELECT * FROM LOGS') }  

Затем я застрял, так как не мог знать, как управлять Callback функциями.

Есть какие-нибудь мысли?