javascript - 这个例子中的 fn 是什么?

标签 javascript testing node.js

在这个例子中,有一个带有 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/

相关文章:

testing - 如何从一个文件位置获取数据并使用 tcl 代码运行

testing - 如何在 Go 测试中测试泄漏连接?

unit-testing - 在测试中什么是经过验证的假货?

node.js - NestJS - 微服务中的发布/订阅模式

javascript - 使用 puppeteer 或 playwright,有没有办法更新最初在启动方法中传递的参数?

javascript - jsrender if-else 使用 {{=propName}}

javascript - 向前或向后行走多维javascript数组

mysql - 为什么mysql转义会破坏整个查询?

javascript - 使用ajax从API获取图像

javascript - 如何使百分比符号小于数字?