middleware ってどうやって呼んでるのん?
Nuxt で Layoutに設定したミドルウェアがどのような順序で実行されているのか調べてみました。
Promise.all で呼んでたりするのかな?
該当コード
呼んでいる
https://github.com/nuxt/nuxt.js/blob/fb978b812a3790f3e0be386931a75662e6903fe5/lib/app/server.js#L131
よばれている
- middlewareSeries https://github.com/nuxt/nuxt.js/blob/90d9283e705349f0367df645fe583801e353e219/lib/app/utils.js#L172
結果
- Promise.all では実行されていなかった。
- middlewareSeries というファンクションで実行されているみたい
middlewareSeries
export function middlewareSeries(promises, appContext) { if (!promises.length || appContext._redirected || appContext._errored) { return Promise.resolve() } return promisify(promises[0], appContext) .then(() => { return middlewareSeries(promises.slice(1), appContext) }) }
then句 内で次のPromise を再帰的に呼んでるみたい。
てことは middlewareは 指定した順番通りに実行されると思っていいのかな?
ES初心者なのでわかっていないかも・・・
間違ってたら教えてください。
moremagic
2018-06-19