pull/51/head
parent
897dc9eff5
commit
e85494fb19
@ -0,0 +1,39 @@ |
||||
// Package utils
|
||||
// @Time:2023/08/24 06:36
|
||||
// @File:jsRun.go
|
||||
// @SoftWare:Goland
|
||||
// @Author:feiyang
|
||||
// @Contact:TG@feiyangdigital
|
||||
|
||||
package utils |
||||
|
||||
import ( |
||||
"fmt" |
||||
js "github.com/dop251/goja" |
||||
) |
||||
|
||||
type JsUtil struct{} |
||||
|
||||
func (j *JsUtil) JsRun(funcContent []string, params ...any) any { |
||||
vm := js.New() |
||||
_, err := vm.RunString(funcContent[0]) |
||||
if err != nil { |
||||
return err |
||||
} |
||||
jsfn, ok := js.AssertFunction(vm.Get(funcContent[1])) |
||||
if !ok { |
||||
return fmt.Errorf("执行函数失败") |
||||
} |
||||
jsValues := make([]js.Value, 0, len(params)) |
||||
for _, v := range params { |
||||
jsValues = append(jsValues, vm.ToValue(v)) |
||||
} |
||||
result, err := jsfn( |
||||
js.Undefined(), |
||||
jsValues..., |
||||
) |
||||
if err != nil { |
||||
return err |
||||
} |
||||
return result |
||||
} |
||||
Loading…
Reference in new issue