加入中间件异步功能