forked from nsjcy/frontEnd/nsjcy

liyj
2020-02-03 7a4d973140ee0168f509098b52745c8a7947ca74
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class FileCache {
 
    constructor() {
        this.fileInfos = {};
    }
 
    _load(url, callback, retryCount) {
        if (retryCount <= 0) {
            return;
        }
        retryCount--;
        var self = this;
        if (this.fileInfos[url]) {
            callback && callback({
                errCode: 0,
                errMsg: '',
                tmpFilePath: self.fileInfos[url].tmpFilePath
            })
        } else {
            wx.downloadFile({
                url: url,
                success: function (res) {
                    self.fileInfos[url] = {
                        tmpFilePath: res.tempFilePath
                    }
                    callback && callback({
                        errCode: 0,
                        errMsg: '',
                        tmpFilePath: self.fileInfos[url].tmpFilePath
                    })
                },
                fail: function (res) {
                    console.error('下载图片失败:', res);
                    if (retryCount <= 0) {
                        callback && callback(res);
                    } else {
                        self._load(url, callback, retryCount);
                    }
                }
            })
        }
    }
 
    load(url, callback) {
        this._load(url, callback, 3);
    }
}
 
module.exports = FileCache;