@ives_xxz/framework 1.4.5 → 1.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/FW.d.ts CHANGED
@@ -1924,8 +1924,8 @@ declare namespace FW {
1924
1924
 
1925
1925
  type PromiseProxy<T = Promise> = {
1926
1926
  id: number;
1927
- promise: Promise<T>;
1928
1927
  status: any;
1928
+ promise?: Promise<T>;
1929
1929
  abortController: AbortController;
1930
1930
  abort?: (reason?: any) => void;
1931
1931
  addAbortEventListener?: (
@@ -131,36 +131,43 @@ export class FWAssetManager extends FWManager implements FW.AssetManager {
131
131
 
132
132
  assetData.loaded = false;
133
133
 
134
- return new Promise((resolve, reject) => {
135
- const self = this;
136
- bundle.load(
137
- path,
138
- type,
139
- (finish: number, total: number, item: cc.AssetManager.RequestItem) => {
140
- progress?.(finish, total, item);
141
- },
142
- (err: Error, asset: cc.Asset) => {
143
- if (err || !asset) {
144
- reject(err);
145
- return;
146
- }
134
+ return FW.Entry.promiseMgr.execute(
135
+ (resolve, reject, signal) => {
136
+ const self = this;
137
+ bundle.load(
138
+ path,
139
+ type,
140
+ (finish: number, total: number, item: cc.AssetManager.RequestItem) => {
141
+ progress?.(finish, total, item);
142
+ },
143
+ (err: Error, asset: cc.Asset) => {
144
+ if (err || !asset) {
145
+ reject(err);
146
+ return;
147
+ }
147
148
 
148
- assetData.loaded = true;
149
- assetData.dependentBundle = bundleName;
150
- assetData.uuid = asset['_uuid'];
151
- assetData.autoRelease = autoRelease;
152
- assetData.asset = asset;
153
- assetData.user = assetProperty.user;
154
- assetData.refCount = 1;
155
- assetData.assetProperty = assetProperty;
156
-
157
- self.assetsMap.set(key, assetData);
158
-
159
- cb?.(assetData);
160
- resolve(assetData);
161
- },
162
- );
163
- });
149
+ assetData.loaded = true;
150
+ assetData.dependentBundle = bundleName;
151
+ assetData.uuid = asset['_uuid'];
152
+ assetData.autoRelease = autoRelease;
153
+ assetData.asset = asset;
154
+ assetData.user = assetProperty.user;
155
+ assetData.refCount = 1;
156
+ assetData.assetProperty = assetProperty;
157
+
158
+ self.assetsMap.set(key, assetData);
159
+
160
+ cb?.(assetData);
161
+ resolve(assetData);
162
+ },
163
+ );
164
+ },
165
+ {
166
+ retryCount: 3,
167
+ retryInterval: 1,
168
+ timeout: 10,
169
+ },
170
+ ).promise;
164
171
  }
165
172
  /**
166
173
  * 加载文件夹
@@ -25,12 +25,10 @@ export default class FWPromiseManager extends FWManager implements FW.PromiseMan
25
25
  const id = this.uniqueId++;
26
26
  const abortController = new AbortController();
27
27
  let retryCount = 0;
28
- let promise: Promise<T>;
29
28
  const maxRetryTimes = options.retryCount || 0;
30
29
  const retryInterval = options.retryInterval || 0;
31
30
  const promiseProxy: FW.PromiseProxy<T> = {
32
31
  id,
33
- promise,
34
32
  status: FWSystemDefine.FWPromiseStatus.PENDING,
35
33
  abortController,
36
34
  };
@@ -77,13 +75,11 @@ export default class FWPromiseManager extends FWManager implements FW.PromiseMan
77
75
  abortController.signal.addEventListener('abort', onAbort);
78
76
 
79
77
  const wrappedResolve = (value: T | PromiseLike<T>) => {
78
+ promiseProxy.status = FWSystemDefine.FWPromiseStatus.FULFILLED;
79
+ abortController.signal.removeEventListener('abort', onAbort);
80
+ this.removePromise(id);
80
81
  this.timerSchedule?.unSchedule();
81
- if (promiseProxy.status === FWSystemDefine.FWPromiseStatus.PENDING) {
82
- promiseProxy.status = FWSystemDefine.FWPromiseStatus.FULFILLED;
83
- abortController.signal.removeEventListener('abort', onAbort);
84
- this.removePromise(id);
85
- resolve(value);
86
- }
82
+ resolve(value);
87
83
  };
88
84
 
89
85
  const wrappedReject = (reason?: any) => {
@@ -118,7 +114,7 @@ export default class FWPromiseManager extends FWManager implements FW.PromiseMan
118
114
  });
119
115
  };
120
116
 
121
- promise = createPromise();
117
+ promiseProxy.promise = createPromise();
122
118
  promiseProxy.abort = (reason?: any) => {
123
119
  if (promiseProxy.status === FWSystemDefine.FWPromiseStatus.PENDING) {
124
120
  FWLog.debug(reason || 'promise cancelled');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ives_xxz/framework",
3
- "version": "1.4.5",
3
+ "version": "1.4.7",
4
4
  "description": "cocoscreator 2.x mvc framework",
5
5
  "main": "index.js",
6
6
  "keywords": ["123456"],