老师您好,我有两个问题
// 组合中间件
function compose (middlewareList) {
return function (ctx) {
// 中间件调用
function dispatch (i) {
const fn = middlewareList[i] // 就是某一个中间件函数,async function
try {
return Promise.resolve(
fn(ctx, dispatch.bind(null, i + 1)) // fn 都是 async 函数,返回的都是 Promise
)
} catch (err) {
return Promise.reject(err)
}
}
return dispatch(0)
}
}
dispatch
函数里面没用到 this
,为什么还要 bind nulldispatch.bind(null, i + 1)
这样的话 i
最后不会越过middlewareList
的界吗