mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-23 14:15:13 +00:00
Merge pull request #456 from taldy/nuxtserverinit-promises-improvement
Support other implementations of Promises inside nuxtServerInit (currently only HTML5 Promises works correctly)
This commit is contained in:
commit
5412ddc8d1
@ -166,7 +166,7 @@ function render (to, from, next) {
|
||||
}
|
||||
if (Component.options.fetch) {
|
||||
var p = Component.options.fetch(context)
|
||||
if (!(p instanceof Promise)) { p = Promise.resolve(p) }
|
||||
if (!p || (!(p instanceof Promise) && (typeof p.then !== 'function'))) { p = Promise.resolve(p) }
|
||||
<%= (loading ? 'p.then(() => this.$loading.increase && this.$loading.increase(30))' : '') %>
|
||||
promises.push(p)
|
||||
}
|
||||
@ -318,7 +318,7 @@ function addHotReload ($component, depth) {
|
||||
// Call fetch()
|
||||
Component.options.fetch = Component.options.fetch || noopFetch
|
||||
let pFetch = Component.options.fetch(context)
|
||||
if (!(pFetch instanceof Promise)) { pFetch = Promise.resolve(pFetch) }
|
||||
if (!pFetch || (!(pFetch instanceof Promise) && (typeof pFetch.then !== 'function'))) { pFetch = Promise.resolve(pFetch) }
|
||||
<%= (loading ? 'pFetch.then(() => this.$loading.increase && this.$loading.increase(30))' : '') %>
|
||||
promises.push(pFetch)
|
||||
return Promise.all(promises)
|
||||
|
@ -85,7 +85,7 @@ export default context => {
|
||||
// nuxtServerInit
|
||||
<% if (store) { %>
|
||||
let promise = (store._actions && store._actions.nuxtServerInit ? store.dispatch('nuxtServerInit', omit(getContext(context), 'redirect', 'error')) : null)
|
||||
if (!(promise instanceof Promise)) promise = Promise.resolve()
|
||||
if (!promise || (!(promise instanceof Promise) && (typeof promise.then !== 'function'))) promise = Promise.resolve()
|
||||
<% } else { %>
|
||||
let promise = Promise.resolve()
|
||||
<% } %>
|
||||
|
@ -84,7 +84,7 @@ export function promisify (fn, context) {
|
||||
} else {
|
||||
promise = fn(context)
|
||||
}
|
||||
if (!(promise instanceof Promise)) {
|
||||
if (!promise || (!(promise instanceof Promise) && (typeof promise.then !== 'function'))) {
|
||||
promise = Promise.resolve(promise)
|
||||
}
|
||||
return promise
|
||||
|
@ -52,7 +52,7 @@ export function promisifyRoute (fn) {
|
||||
})
|
||||
}
|
||||
let promise = fn()
|
||||
if (!(promise instanceof Promise)) {
|
||||
if (!promise || (!(promise instanceof Promise) && (typeof promise.then !== 'function'))) {
|
||||
promise = Promise.resolve(promise)
|
||||
}
|
||||
return promise
|
||||
|
Loading…
Reference in New Issue
Block a user