koa2-compose源码是否可以做如下修改?

https://github.com/koajs/comp...
//源码链接
//koa 源码callback()中
 const fn = compose(this.middleware);

 fn(ctx).then(handleResponse).catch(onerror); //fn是compose后的结果,只传入了一个ctx,意味着下面返回函数的next参数为undefined
//compose
function compose (middleware) {
....
return function (context, next) { //使用时next参数并没有传入,该参数是否有必要?
    // last called middleware #
    let index = -1
    return dispatch(0)
    function dispatch (i) {
      if (i <= index) return Promise.reject(new Error('next() called multiple times'))
      index = i
      let fn = middleware[i]    
      if (i === middleware.length) fn = next//是否可以去掉这行?因为js数组不考虑越界,当越界时是undefined  ,next未被传入所以也是undefined
      if (!fn) return Promise.resolve()
     
      try {
        return Promise.resolve(fn(context, function next () {
          return dispatch(i + 1)
        }))
      } catch (err) {
        return Promise.reject(err)
      }
    }
  }
}
}
阅读 946
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题