From b120e590b62d3201f9c33636be165ce88be15f8c Mon Sep 17 00:00:00 2001 From: William Petit Date: Tue, 5 Dec 2023 14:14:08 +0100 Subject: [PATCH] fix: do not use goja.Value outside of run loop --- pkg/app/server.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/app/server.go b/pkg/app/server.go index 6006ebf..f14cf0b 100644 --- a/pkg/app/server.go +++ b/pkg/app/server.go @@ -132,17 +132,17 @@ func (s *Server) Exec(ctx context.Context, callableOrFuncname any, args ...inter value := result.value if promise, ok := IsPromise(value); ok { - value = s.waitForPromise(promise) + return s.waitForPromise(promise), nil } return value.Export(), nil } } -func (s *Server) waitForPromise(promise *goja.Promise) goja.Value { +func (s *Server) waitForPromise(promise *goja.Promise) any { var ( wg sync.WaitGroup - value goja.Value + value any ) wg.Add(1) @@ -162,7 +162,7 @@ func (s *Server) waitForPromise(promise *goja.Promise) goja.Value { return } - value = promise.Result() + value = promise.Result().Export() breakLoop = true })