onError调用了promise

时间:2019-02-11 21:36:36

标签: javascript html swift

我写了一个基于Web的应用程序,希望在iPhone的Web视图中显示。我的计划是通过承诺加载此网站资产:

我编写了这段代码,以加载稍后在画布上绘制所需的一些图像:

constructor() {
    this.assets = {
      "assets/y/y/background.png" : 0,
      "assets/y/spritesheet.png" : 0,
      "assets/x/spritesheet.png" : 0,
      "assets/x/background.png" : 0,
      "assets/x/background.png" : 0,
      "assets/z/spritesheet.png" : 0,
      "assets/z/background.png" : 0,
      "assets/z/a/spritesheet.png" : 0,
      "assets/p/a/spritesheet.png" : 0,
      "assets/p/a/spritesheet.png" : 0,
    }
    this.init()
}
async init() {
    await this.loadAssets()
    $("#information").html("successfully started")
}

async loadAssets() {
    for (let asset in this.assets) {
      let image = new Image()
      image.src = "https://myWebserver.info/" + asset
      $("#information").html("loading asset<br>" + asset)
      await new Promise(resolve => {
          image.onload = () => {
            resolve(image);
          }
          image.onerror = (e) => {
            $("#information").html("error asset<br>" + image.src)
          }
      });
      this.assets[asset] = image
    }
  }

上面的 js代码在Mac上运行时效果很好-但是我在Swift中使用WKWebView遇到了很大的问题。启动该应用程序将导致大约每隔第二次出现我加载图像的错误。

我的第一个想法是,它可能只是一张损坏的图片,但事实并非如此:犯错的图片每次都是不同的-似乎是偶然的。

有人知道如何解决此问题,并在出现错误的情况下仍重新加载有问题的图像吗?

我真的很无助。

0 个答案:

没有答案