Skip to content

Commit

Permalink
fix(build): avoid using async/await syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
yyx990803 committed Jul 2, 2021
1 parent a44d528 commit 438754a
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions packages/runtime-core/src/apiSetupHelpers.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { isPromise } from '../../shared/src'
import {
getCurrentInstance,
SetupContext,
Expand Down Expand Up @@ -232,19 +233,22 @@ export function mergeDefaults(
* Runtime helper for storing and resuming current instance context in
* async setup().
*/
export async function withAsyncContext<T>(
awaitable: T | Promise<T>
): Promise<T> {
export function withAsyncContext<T>(awaitable: T | Promise<T>): Promise<T> {
const ctx = getCurrentInstance()
setCurrentInstance(null) // unset after storing instance
if (__DEV__ && !ctx) {
warn(`withAsyncContext() called when there is no active context instance.`)
}
let res: T
try {
res = await awaitable
} finally {
setCurrentInstance(ctx)
}
return res
return isPromise<T>(awaitable)
? awaitable.then(
res => {
setCurrentInstance(ctx)
return res
},
err => {
setCurrentInstance(ctx)
throw err
}
)
: (awaitable as any)
}

0 comments on commit 438754a

Please sign in to comment.