JSZip,Jquery,Fetch,Promises,按顺序处理多个promise

时间:2017-04-04 02:46:40

标签: javascript jquery fetch-api jszip

我有多个需要按顺序执行的promise对象(不同类型)。

import UIKit
import JavaScriptCore

class AmazonFullAdViewController: UIViewController, UIWebViewDelegate {

@IBOutlet weak var webView: UIWebView!

var url = URL(string: "https://google.com")

override func viewDidLoad() {
    super.viewDidLoad()

    webView.delegate = self

    // 1
    guard let commonJSPath = Bundle.main.path(forResource: "common", ofType: "js") else {
        //commonJSPath = Bundle.main.path(forResource: "Series", ofType: "txt") else {
            print("Unable to read resource files.")
            return
    }

    // 2
    do {
        let common = try String(contentsOfFile: commonJSPath, encoding: String.Encoding.utf8)
        _ = context?.evaluateScript(common)
        // webView.stringByEvaluatingJavaScript(from: common)
        webView.loadHTMLString(common, baseURL: Bundle.main.bundleURL)
    } catch (let error) {
        print("Error while processing script file: \(error)")
    }

    //load initial URL
//        let req = URLRequest(url : url!)
//        webView.scalesPageToFit = true
//        webView.contentMode = .scaleAspectFit
//        webView.loadRequest(req)
}
}

所以,迭代一个循环,然后加载一个脚本并对其进行评估,以便Handlebars可以在下一步中使用它,然后添加一些文件,然后根据设置的属性获取一个zip文件,然后加载获取到zip文件的字节,然后再添加一些文件,然后生成zip文件,然后将其下载给用户..

因此localforage返回一个promise。然后我需要使用jQuery的getScript来完成。之后,我需要使用Fetch返回一个promise,然后JSZip返回一个promise ...它们不是所有相同类型的对象,也不是相同类型的promise。

顺序处理每个返回承诺的一系列不同对象的最佳方法是什么?

0 个答案:

没有答案