From 28b3d2e4b337e6c76c7a00fac6602424efd8d467 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Tue, 19 Sep 2023 19:41:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(data-source):=20timing=E6=94=B9=E6=88=90?= =?UTF-8?q?=E4=B8=B2=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/data-source/src/DataSourceManager.ts | 8 ++++++-- packages/data-source/src/data-sources/Http.ts | 12 ++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/data-source/src/DataSourceManager.ts b/packages/data-source/src/DataSourceManager.ts index 637d0999..1f9a44b1 100644 --- a/packages/data-source/src/DataSourceManager.ts +++ b/packages/data-source/src/DataSourceManager.ts @@ -94,11 +94,15 @@ class DataSourceManager extends EventEmitter { } }); - await Promise.all(beforeInit.map((method) => method({ params: {}, dataSource: ds, app: this.app }))); + for (const method of beforeInit) { + await method({ params: {}, dataSource: ds, app: this.app }); + } await ds.init(); - await Promise.all(afterInit.map((method) => method({ params: {}, dataSource: ds, app: this.app }))); + for (const method of afterInit) { + await method({ params: {}, dataSource: ds, app: this.app }); + } this.setData(ds); diff --git a/packages/data-source/src/data-sources/Http.ts b/packages/data-source/src/data-sources/Http.ts index e4d74865..bbb50233 100644 --- a/packages/data-source/src/data-sources/Http.ts +++ b/packages/data-source/src/data-sources/Http.ts @@ -119,18 +119,18 @@ export default class HttpDataSource extends DataSource { public async request(options: HttpOptions) { try { - await Promise.all( - this.beforeRequest.map((method) => method({ options, params: {}, dataSource: this, app: this.app })), - ); + for (const method of this.beforeRequest) { + await method({ options, params: {}, dataSource: this, app: this.app }); + } const res = await this.fetch?.({ ...this.httpOptions, ...options, }); - await Promise.all( - this.afterRequest.map((method) => method({ res, options, params: {}, dataSource: this, app: this.app })), - ); + for (const method of this.afterRequest) { + await method({ res, options, params: {}, dataSource: this, app: this.app }); + } if (this.schema.responseOptions?.dataPath) { const data = getValueByKeyPath(this.schema.responseOptions.dataPath, res);