diff --git a/packages/uni-app/dist/uni-app.cjs.js b/packages/uni-app/dist/uni-app.cjs.js index 552bece7925d0675d6c6207c886bc5581d8dc6db..d668d81d66634b834ee21f050587a0f85a1650c4 100644 --- a/packages/uni-app/dist/uni-app.cjs.js +++ b/packages/uni-app/dist/uni-app.cjs.js @@ -165,8 +165,8 @@ function normalizeArg(arg) { } return arg; } -function initUtsInstanceMethod(async, opts) { - return initProxyFunction(async, opts); +function initUtsInstanceMethod(async, opts, instanceId) { + return initProxyFunction(async, opts, instanceId); } function getProxy() { if (!proxy) { @@ -235,7 +235,7 @@ function initUtsStaticMethod(async, opts) { opts.method = 's_' + opts.name; } } - return initProxyFunction(async, opts); + return initProxyFunction(async, opts, 0); } const initUtsProxyFunction = initUtsStaticMethod; function initUtsProxyClass({ package: pkg, class: cls, constructor: { params: constructorParams }, methods, props, staticProps, staticMethods, }) { @@ -247,7 +247,10 @@ function initUtsProxyClass({ package: pkg, class: cls, constructor: { params: co constructor(...params) { const target = {}; // 初始化实例 ID - const instanceId = initProxyFunction(false, shared.extend({ name: 'constructor', params: constructorParams }, baseOptions)).apply(null, params); + const instanceId = initProxyFunction(false, shared.extend({ name: 'constructor', params: constructorParams }, baseOptions), 0).apply(null, params); + if (!instanceId) { + throw new Error(`new ${cls} is failed`); + } return new Proxy(this, { get(_, name) { if (!target[name]) { @@ -255,10 +258,9 @@ function initUtsProxyClass({ package: pkg, class: cls, constructor: { params: co if (shared.hasOwn(methods, name)) { const { async, params } = methods[name]; target[name] = initUtsInstanceMethod(!!async, shared.extend({ - id: instanceId, name, params, - }, baseOptions)); + }, baseOptions), instanceId); } else if (props.includes(name)) { // 实例属性 diff --git a/packages/uni-app/dist/uni-app.es.js b/packages/uni-app/dist/uni-app.es.js index 4576bbe9bb2b27bb13bbb7a00cf70e9c97a55d8e..665925a7ca76371dbcf21d55c507b6a4a6f45365 100644 --- a/packages/uni-app/dist/uni-app.es.js +++ b/packages/uni-app/dist/uni-app.es.js @@ -133,8 +133,8 @@ function normalizeArg(arg) { } return arg; } -function initUtsInstanceMethod(async, opts) { - return initProxyFunction(async, opts); +function initUtsInstanceMethod(async, opts, instanceId) { + return initProxyFunction(async, opts, instanceId); } function getProxy() { if (!proxy) { @@ -203,7 +203,7 @@ function initUtsStaticMethod(async, opts) { opts.method = 's_' + opts.name; } } - return initProxyFunction(async, opts); + return initProxyFunction(async, opts, 0); } const initUtsProxyFunction = initUtsStaticMethod; function initUtsProxyClass({ package: pkg, class: cls, constructor: { params: constructorParams }, methods, props, staticProps, staticMethods, }) { @@ -215,7 +215,10 @@ function initUtsProxyClass({ package: pkg, class: cls, constructor: { params: co constructor(...params) { const target = {}; // 初始化实例 ID - const instanceId = initProxyFunction(false, extend({ name: 'constructor', params: constructorParams }, baseOptions)).apply(null, params); + const instanceId = initProxyFunction(false, extend({ name: 'constructor', params: constructorParams }, baseOptions), 0).apply(null, params); + if (!instanceId) { + throw new Error(`new ${cls} is failed`); + } return new Proxy(this, { get(_, name) { if (!target[name]) { @@ -223,10 +226,9 @@ function initUtsProxyClass({ package: pkg, class: cls, constructor: { params: co if (hasOwn(methods, name)) { const { async, params } = methods[name]; target[name] = initUtsInstanceMethod(!!async, extend({ - id: instanceId, name, params, - }, baseOptions)); + }, baseOptions), instanceId); } else if (props.includes(name)) { // 实例属性 diff --git a/packages/uni-app/src/uts.ts b/packages/uni-app/src/uts.ts index 8bfbe649c49b43ce9d8bae32f4357529f7751cf6..244c42084a00200315124dacb095dd7640d5613f 100644 --- a/packages/uni-app/src/uts.ts +++ b/packages/uni-app/src/uts.ts @@ -17,8 +17,12 @@ export function normalizeArg(arg: unknown) { return arg } -function initUtsInstanceMethod(async: boolean, opts: ProxyFunctionOptions) { - return initProxyFunction(async, opts) +function initUtsInstanceMethod( + async: boolean, + opts: ProxyFunctionOptions, + instanceId: number +) { + return initProxyFunction(async, opts, instanceId) } interface Parameter { @@ -165,7 +169,7 @@ function initProxyFunction( companion, params: methodParams, }: ProxyFunctionOptions, - instanceId?: number + instanceId: number ) { const invokeCallback = ({ id, @@ -221,7 +225,7 @@ function initUtsStaticMethod(async: boolean, opts: ProxyFunctionOptions) { opts.method = 's_' + opts.name } } - return initProxyFunction(async, opts) + return initProxyFunction(async, opts, 0) } export const initUtsProxyFunction = initUtsStaticMethod @@ -245,9 +249,12 @@ export function initUtsProxyClass({ // 初始化实例 ID const instanceId = initProxyFunction( false, - extend({ name: 'constructor', params: constructorParams }, baseOptions) + extend({ name: 'constructor', params: constructorParams }, baseOptions), + 0 ).apply(null, params) as number - + if (!instanceId) { + throw new Error(`new ${cls} is failed`) + } return new Proxy(this, { get(_, name) { if (!target[name as string]) { @@ -258,12 +265,12 @@ export function initUtsProxyClass({ !!async, extend( { - id: instanceId, name, params, }, baseOptions - ) + ), + instanceId ) } else if (props.includes(name as string)) { // 实例属性