From: Yang Mingshan Date: Wed, 18 Dec 2019 16:46:59 +0000 (+0800) Subject: fix(watch): ignore lazy option in simple watch (#546) X-Git-Tag: v3.0.0-alpha.0~18 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c2c9c2b57e5d2e87da99bedb06b9e2d3e48b492e;p=thirdparty%2Fvuejs%2Fcore.git fix(watch): ignore lazy option in simple watch (#546) * fix(watch): ignore lazy option in simple watch * test: ignore lazy option in simple watch --- diff --git a/packages/runtime-core/__tests__/apiWatch.spec.ts b/packages/runtime-core/__tests__/apiWatch.spec.ts index 65710c65c5..ed2276f729 100644 --- a/packages/runtime-core/__tests__/apiWatch.spec.ts +++ b/packages/runtime-core/__tests__/apiWatch.spec.ts @@ -344,6 +344,25 @@ describe('api: watch', () => { expect(cb).toHaveBeenCalled() }) + it('ignore lazy', async () => { + const count = ref(0) + let dummy + watch( + () => { + dummy = count.value + }, + { lazy: true } + ) + expect(dummy).toBeUndefined() + + await nextTick() + expect(dummy).toBe(0) + + count.value++ + await nextTick() + expect(dummy).toBe(1) + }) + it('onTrack', async () => { const events: DebuggerEvent[] = [] let dummy diff --git a/packages/runtime-core/src/apiWatch.ts b/packages/runtime-core/src/apiWatch.ts index efd3dfd40a..22828316ed 100644 --- a/packages/runtime-core/src/apiWatch.ts +++ b/packages/runtime-core/src/apiWatch.ts @@ -197,7 +197,7 @@ function doWatch( scheduler: applyCb ? () => scheduler(applyCb) : scheduler }) - if (!lazy) { + if (!lazy || !cb) { if (applyCb) { scheduler(applyCb) } else {