Skip to content

Commit dd9d362

Browse files
committed
fix async component resolving with Webpack 2 require.ensure
1 parent 7459c53 commit dd9d362

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/history/base.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,12 +285,20 @@ function resolveAsyncComponents (matched: Array<RouteRecord>): Array<?Function>
285285
// resolved.
286286
if (typeof def === 'function' && !def.options) {
287287
return (to, from, next) => {
288+
// in Webpack 2, require.ensure now also returns a Promise
289+
// so the resolve/reject functions may get called an extra time
290+
let called = false
291+
288292
const resolve = resolvedDef => {
293+
if (called) return
294+
called = true
289295
match.components[key] = resolvedDef
290296
next()
291297
}
292298

293299
const reject = reason => {
300+
if (called) return
301+
called = true
294302
warn(false, `Failed to resolve async component ${key}: ${reason}`)
295303
next(false)
296304
}

0 commit comments

Comments
 (0)