NetStream.time
调用该函数时,该函数的实际参数在哪里传递,以及为该函数提供参数的原因。
我对函数的理解是,首先您需要函数定义
app.use(function(req, res, next) {
console.log(req)
});
其中x是参数。仅此代码块将不会执行任何功能,因为尚未调用它并提供了参数
function timesTwo(x){
return 2*x
}
仅有效,因为我已经调用了函数并传递了参数3
那为什么
timesTwo(3) //will return 6
工作,如果我没有调用/提供类似timesTwo函数的参数
答案 0 :(得分:1)
您正在传递一个回调函数,稍后将调用它。
这里是一个例子:
const app = {
list:[],
use(fn) {
// save the reference to the function so it can be called later
this.list.push(fn);
},
handle() {
// The callback function is called here. Notice that I don't know what
// the function was called, and it doesn't matter if it was a named
// or anonymous function. I just call it with whatever arguments
// I want.
const time = new Date().toISOString();
this.list.forEach( fn => fn( time ) );
}
}
setInterval(app.handle.bind(app), 2000);
function myFunction (time) {
console.log('MYFUNC', time)
};
app.use(myFunction); // Adds a named function
app.use( function(time) { console.log("Anonymous", time) } ); // adds an anonymous function
答案 1 :(得分:-1)
这不是用户定义的函数,它实际上是express框架中的中间件(您也可以说回调函数)。参数已经由快速框架设置/管理。当您请求发送到服务器时,它将自动执行。