diff --git a/packages/mixins/transition.ts b/packages/mixins/transition.ts index ba908894..2e2f1785 100644 --- a/packages/mixins/transition.ts +++ b/packages/mixins/transition.ts @@ -7,7 +7,7 @@ const getClassNames = (name: string) => ({ 'leave-to': `van-${name}-leave-to van-${name}-leave-active leave-to-class leave-active-class` }); -const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 30)); +const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 20)); export const transition = function(showDefaultValue: boolean) { return Behavior({ @@ -84,11 +84,6 @@ export const transition = function(showDefaultValue: boolean) { const { classNames, duration } = this.data; const currentDuration = isObj(duration) ? duration.leave : duration; - if (+currentDuration === 0) { - this.onTransitionEnd(); - return; - } - Promise.resolve() .then(nextTick) .then(() => @@ -97,6 +92,7 @@ export const transition = function(showDefaultValue: boolean) { currentDuration }) ) + .then(() => setTimeout(() => this.onTransitionEnd(), currentDuration)) .then(nextTick) .then(() => this.set({