关于 like-koa2 中 next 机制的一个实现疑问

来源:11-12 总结

kemplaw

2019-06-06

其实我有一个疑问,在写 like-koa2 的时候,去实现 next 机制,这个 dispatch.bind(null, i + 1) 按理说,如果不加 if 条件,它会直接无限循环去 + 1,我试过不加 bind,确实会陷入一个死循环, 但是在 加了 bind 之后 就会自动退出,这是为什么?

写回答

2回答

kemplaw

提问者

2019-06-06

刚刚去 mdn 上仔细看了下 bind 函数的一个定义, 看到 bind 函数会返回一个新函数这一点我就明白了, 这个dispatch.bind(null, i + 1) 并非是直接调用 dispatch 这个函数 而是利用 bind 去返回一个 新函数给中间件去调用 也就是 调用所谓的 next ,如果没有中间件去调用 next ,i 就不会再加一。

4
1
沉霄
我觉得说反了,应该是i参数已经给你传了(已经+1了),你执行了next,才会去执行这第i个函数
2022-03-24
共1条回复

慕斯卡0588786

2019-11-17

try catch  帮你停止了吧

0
0

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4050 学习 · 2006 问题

查看课程