我有一个问题,现在几天来一直困扰着我。我正在尝试在我的Swift项目中使用WKWebView
。以下是我的代码:
var items: [String] = []
for i in 0...8 {
web_view.evaluateJavaScript("document.getElementsByClassName('channels-content-item yt-shelf-grid-item')[\(i)].innerHTML") { (result, error) in
//print(result ?? "nil")
//print(error ?? "nil")
let string_result: String = String(describing: result!)
items.append(string_result)
num += 1
//print(string_result)
}
}
print(items)
我的问题是程序不会等到evaluateJavaScript函数在转到print(items)之前完成,即使items数组通过这些函数填充。我能用这种方式工作吗? 非常感谢任何帮助,提前谢谢
答案 0 :(得分:0)
您认为完成处理程序内部有什么是在不同的线程上运行的,这意味着它在打印发生后即在运行。由于注入javascript需要更长的时间,因此您的打印很有可能总是首先发生。