SOURCE

// middlewares[fn,fn,fn] 使用use的时候加进来的
compose(middlewares,ctx){
    function dispatch(index){ // 取出一个中间件执行
        if(index === middlewares.length) {
            return Promise.resolve()
        }
        // Promise.resolve() 为了保证返回的是一个promise,如果用户调用next前面必须加await否则不会等待
        // next函数 ()=> dispatch(index+1)
        return Promise.resolve(middlewares[index](ctx,()=> dispatch(index+1)))
    }
    return dispatch(0)
}
console 命令行工具 X clear

                    
>
console