@ives_xxz/framework 1.4.4 → 1.4.6

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,45 +131,37 @@ export class FWAssetManager extends FWManager implements FW.AssetManager {
131
131
 
132
132
  assetData.loaded = false;
133
133
 
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
- signal.addEventListener('abort', () => {
146
- FWLog.error(`加载资源失败:${asset},请检查!`);
147
- reject(err);
148
- });
149
- return;
150
- }
151
-
152
- assetData.loaded = true;
153
- assetData.dependentBundle = bundleName;
154
- assetData.uuid = asset['_uuid'];
155
- assetData.autoRelease = autoRelease;
156
- assetData.asset = asset;
157
- assetData.user = assetProperty.user;
158
- assetData.refCount = 1;
159
- assetData.assetProperty = assetProperty;
160
-
161
- self.assetsMap.set(key, assetData);
134
+ const proxy = FW.Entry.promiseMgr.execute((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
+ }
162
147
 
163
- cb?.(assetData);
164
- resolve(assetData);
165
- },
166
- );
167
- },
168
- {
169
- timeout: 10,
170
- retryCount: 3,
171
- },
172
- ).promise;
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
+ });
164
+ return proxy.promise;
173
165
  }
174
166
  /**
175
167
  * 加载文件夹
@@ -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.4",
3
+ "version": "1.4.6",
4
4
  "description": "cocoscreator 2.x mvc framework",
5
5
  "main": "index.js",
6
6
  "keywords": ["123456"],