gpt4 book ai didi

javascript - 关于 app.listen() 回调

转载 作者:IT老高 更新时间:2023-10-28 23:10:11 25 4
gpt4 key购买 nike

我是 javascript 新手,现在我正在学习 express.js,但我得到一些代码,让我对它们的工作方式感到困惑。我试图弄清楚这段代码是如何工作的,但我还是不明白:

var server = app.listen(3000, function (){
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});

我的问题是,当服务器变量从 app.listen() 获取返回值时,这个匿名函数如何使用服务器变量。

最佳答案

匿名函数实际上是一个回调,在应用初始化之后被调用。查看 this doc(app.listen() is the same as server.listen()) :

This function is asynchronous. The last parameter callback will be added as a listener for the 'listening' event.

所以 app.listen() 方法返回一个对象到 var server 但它还没有调用回调。这就是为什么 server 变量在回调中可用的原因,它是在调用回调函数之前创建的。

为了让事情更清楚,试试这个测试:

console.log("Calling app.listen().");

var server = app.listen(3000, function (){
console.log("Calling app.listen's callback function.");
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});

console.log("app.listen() executed.");

您应该在 Node 的控制台中看到这些日志:

Calling app.listen().

app.listen() executed.

Calling app.listen's callback function.

Example app listening at...

关于javascript - 关于 app.listen() 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33222074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com