1.修改pending加载策略,修复未落盘而下一个请求到来,重复进行网络请求的问题
Signed-off-by: zhoulisheng1 <zhoulisheng1@huawei.com>
This commit is contained in:
parent
bb547da285
commit
3df0657c84
|
@ -44,6 +44,9 @@ export class ImageKnifeData {
|
|||
static PNG = 'png';
|
||||
static BMP = 'bmp';
|
||||
static WEBP = 'webp';
|
||||
|
||||
waitSaveDisk = false;
|
||||
|
||||
imageKnifeType: ImageKnifeType;
|
||||
drawPixelMap: DrawPixelMap;
|
||||
drawGIFFrame: DrawGIFFrame;
|
||||
|
|
|
@ -431,10 +431,23 @@ export class RequestOption {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(imageKnifeData.waitSaveDisk){
|
||||
// 等落盘结束后主动调用#removeCurrentAndSearchNext方法
|
||||
}else{
|
||||
// 非落盘情况,直接进行寻找下一个加载
|
||||
globalThis.ImageKnife.removeRunning(this);
|
||||
}
|
||||
|
||||
// 加载成功之后
|
||||
globalThis.ImageKnife.removeRunning(this);
|
||||
}
|
||||
|
||||
// 图片文件落盘之后会自动去寻找下一个数据加载
|
||||
removeCurrentAndSearchNext(){
|
||||
globalThis.ImageKnife.removeRunning(this);
|
||||
}
|
||||
|
||||
loadError(err) {
|
||||
LogUtil.log("loadError:" + err);
|
||||
LogUtil.log("loadError stack=:" + JSON.stringify(err.stack));
|
||||
|
|
|
@ -520,12 +520,16 @@ export class RequestManager {
|
|||
this.mMemoryCacheProxy.putValue(this.options.generateCacheKey, imageKnifeData);
|
||||
let save2DiskCache = async (arraybuffer) => {
|
||||
await this.mDiskCacheProxy.putValue(this.options.generateDataKey, arraybuffer)
|
||||
// 落盘之后需要主动移除当前request并且调用下一个加载
|
||||
let removeCurrentAndSearchNextRun = this.options.removeCurrentAndSearchNext.bind(this.options)
|
||||
removeCurrentAndSearchNextRun();
|
||||
}
|
||||
let runSave2Disk = (resolve, reject) => {
|
||||
resolve(source);
|
||||
}
|
||||
let promise = new Promise(runSave2Disk);
|
||||
promise.then(save2DiskCache);
|
||||
imageKnifeData.waitSaveDisk = true;
|
||||
onComplete(imageKnifeData);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue