A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/vuejs/core/commit/2bbb6d2fc56896e64a32b4421822d12bde2bb6e8 below:

recover nextTick from error in post flush cb · vuejs/core@2bbb6d2 · GitHub

File tree Expand file treeCollapse file tree 2 files changed

+19

-3

lines changed

Filter options

Expand file treeCollapse file tree 2 files changed

+19

-3

lines changed Original file line number Diff line number Diff line change

@@ -844,4 +844,12 @@ describe('scheduler', () => {

844 844

await nextTick()

845 845

expect(calls).toEqual(['cb2', 'cb1'])

846 846

})

847 + 848 +

test('error in postFlush cb should not cause nextTick to stuck in rejected state forever', async () => {

849 +

queuePostFlushCb(() => {

850 +

throw 'err'

851 +

})

852 +

await expect(nextTick).rejects.toThrow('err')

853 +

await expect(nextTick()).resolves.toBeUndefined()

854 +

})

847 855

})

Original file line number Diff line number Diff line change

@@ -119,7 +119,10 @@ export function queueJob(job: SchedulerJob): void {

119 119 120 120

function queueFlush() {

121 121

if (!currentFlushPromise) {

122 -

currentFlushPromise = resolvedPromise.then(flushJobs)

122 +

currentFlushPromise = resolvedPromise.then(flushJobs).catch(e => {

123 +

currentFlushPromise = null

124 +

throw e

125 +

})

123 126

}

124 127

}

125 128

@@ -201,8 +204,13 @@ export function flushPostFlushCbs(seen?: CountMap): void {

201 204

if (cb.flags! & SchedulerJobFlags.ALLOW_RECURSE) {

202 205

cb.flags! &= ~SchedulerJobFlags.QUEUED

203 206

}

204 -

if (!(cb.flags! & SchedulerJobFlags.DISPOSED)) cb()

205 -

cb.flags! &= ~SchedulerJobFlags.QUEUED

207 +

if (!(cb.flags! & SchedulerJobFlags.DISPOSED)) {

208 +

try {

209 +

cb()

210 +

} finally {

211 +

cb.flags! &= ~SchedulerJobFlags.QUEUED

212 +

}

213 +

}

206 214

}

207 215

activePostFlushCbs = null

208 216

postFlushIndex = 0

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4