在这个例子中,有一个带有 null 和 false 参数的 fn 函数:
io.configure(function () {
function auth (data, fn) {
fn(null, false);
};
io.set('authorization', auth);
});
https://github.com/LearnBoost/Socket.IO-node/blob/master/test/manager.test.js#L400-403
什么是fn
,它有什么作用?
它只是意味着,示例函数,将您自己的函数粘贴在这里,还是其他意思?
最佳答案
在此示例中,fn
是作为参数传递给 auth()
的函数,所以是的,您提供 auth()
具有您自己选择的一些功能。这称为“高阶函数”,请参阅 here简短介绍。这是一种主要与 functional programming 有关的技术,并且由于 Javascript 的面向对象通常被认为有点弱,因此 Javascript 中更高级的程序往往采用这种风格(Javascript 有时被称为“Scheme in Java's clothing”)
在这个确切的代码中:它是测试套件的一部分,因此它将 io
配置为始终失败授权,以查看授权失败是否得到妥善处理(目前为第 408-409 行) ):
res.statusCode.should.eql(403);
data.should.match(/handshake unauthorized/);
应该无一异常(exception)地到达这些行,并且测试会检查结果是否包含有意义的值。
关于javascript - 这个例子中的 fn 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6437575/