из Go вызывать async функции JS, и впринципе работать с промисами?
Я пытался самыми разными способами, и либо ничего не происходило, либо получался deadlock, и программа зависала.
попробуй так function asyncFunction() { return new Promise((resolve, reject) => { // ну тут resolve, reject все дела }); } package main import ( "fmt" "syscall/js" ) func main() { global := js.Global() asyncFunc := global.Get("asyncFunction") done := make(chan struct{}, 0) promise := asyncFunc.Invoke() promise.Then(js.FuncOf(func(this js.Value, args []js.Value) interface{} { result := args[0] fmt.Println(result) done <- struct{}{} return nil })) promise.Catch(js.FuncOf(func(this js.Value, args []js.Value) interface{} { err := args[0] fmt.Println(err) done <- struct{}{} return nil })) <-done }
Хмм, а вызывать .Invoke() я не догадался 🤔 Сейчас попробую, спасибо!
Обсуждают сегодня