繁体   English   中英

异步代码完成后如何运行代码,Swift

[英]How to run Code after asynchronus code is finished, Swift

我有一个异步函数 loadHTMLString,我调用它来从 HTML 文件中加载文本。 加载过程需要时间,差不多一秒钟。 问题是:如果文件已加载,我想用我的代码打开 go,但我不知道加载何时完成。 有没有办法做到这一点?

func generateAndLoadPDF() {
    // Thats my HTML File
    let html = HTML.get(from: "Vorlage.html")
    // I load this HTML File in my WebView, that takes almost a second
    wkWebView.loadHTMLString(html, baseURL: Bundle.main.bundleURL)
    // I delayed the Following Code, so the HTML-String has time to load
    // Actually I dont want to delay the Code, I want that the following Code runs after .loadHTMLString is finished.
    DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
        // I generate the PDF
        let wkPDFData = PDF.generate(using: self.wkWebViewPrintFormatter())
        self.loadIntoWKWebView(wkPDFData)
    }
}

谢谢,布托什

符合WKNavigationDelegate

webView.navigationDelegate = self

extension ViewController: WKNavigationDelegate {  
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        debugPrint("didFinish")
    } 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM