我正在尝试使用JSCore从Swift中执行一个javascript SDK中的异步函数。我已经成功评估并查看了脚本内容,但是在实际调用异步函数时失败了。这是我的代码,以验证我是否已读取脚本。有关如何完成此操作的想法吗?
lazy var context: JSContext? = {
let context = JSContext()
guard let
commonJSPath = Bundle.main.path(forResource: "test", ofType: "js") else {
print("Unable to read resource files.")
return nil
}
do {
let common = try String(contentsOfFile: commonJSPath, encoding: String.Encoding.utf8)
_ = context?.evaluateScript(common)
} catch (let error) {
print("Error while processing script file: \(error)")
}
return context
}()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
setupJS()
}
func setupJS(){
guard let context = context else {
print("JSContext not found.")
return
}
let dictionary = context.objectForKeyedSubscript("MainObject").toDictionary()
print(dictonary)
//let script = "const {variableName} = FooJS;";
//let result = context.evaluateScript(script)
}
我想要做类似于 async function doSomething(){ return 'hello world!'; }
console.log(await doSomething());