一直都不知道如何获取javascript中,函数的形参个数。
javascript作为一个函数式编程的语言,hooker的使用多不胜数。我遇到一个很灵活的一个hooker接收器:
钩子函数异步 resolve 规则
我们经常需要在钩子函数中进行异步操作。在一个异步的钩子被 resolve 之前,切换会处于暂停状态。钩子的 resolve 遵循以下规则:
- 如果钩子返回一个 Promise,则钩子何时 resolve 取决于该 Promise 何时 resolve。
- 如果钩子既不返回 Promise,也没有任何参数,则该钩子将被同步 resolve。
- 如果钩子不返回 Promise,但是有一个参数 (transition),则钩子会等到 transition.next(), transition.abort() 或是 transition.redirect() 之一被调用才 resolve。
我估计他是对返回值做判断,看看是不是object有没有.then属性以及.then是不是一个函数。这样就知道是不是promise了。
但是我真心绞尽脑汁都没弄明白怎么他怎么实现用了一个参数transition.next()的情况的。
答案在这里。
真心 的,我看了好多好多本javascript的书籍,但是一直都没有注意到这个地方!!!! 大概是没说吧?!!
var fn = function(x, y){return x+y;};
fn.length // 2