Skip to content

Commit b45df85

Browse files
committed
Fix error handling in withScope generator
1 parent 279ed0d commit b45df85

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

packages/interactivity/src/utils.ts

+4-8
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,13 @@ export function withScope( func: ( ...args: unknown[] ) => unknown ) {
143143
const gen = func( ...args ) as Generator;
144144
let value: any;
145145
let it: any;
146+
let error: any;
146147
while ( true ) {
147148
setNamespace( ns );
148149
setScope( scope );
149150
try {
150-
it = gen.next( value );
151+
it = error ? gen.throw( error ) : gen.next( value );
152+
error = undefined;
151153
} finally {
152154
resetScope();
153155
resetNamespace();
@@ -156,14 +158,8 @@ export function withScope( func: ( ...args: unknown[] ) => unknown ) {
156158
try {
157159
value = await it.value;
158160
} catch ( e ) {
159-
setNamespace( ns );
160-
setScope( scope );
161-
gen.throw( e );
162-
} finally {
163-
resetScope();
164-
resetNamespace();
161+
error = e;
165162
}
166-
167163
if ( it.done ) {
168164
break;
169165
}

0 commit comments

Comments
 (0)