如何在node.js中执行回调函数?

马蒂亚斯

我刚刚开始学习node.js和express,在express.js网站上的“ hello world”示例中有些让我感到困惑的地方。在示例中,它们引用回调函数中的服务器变量。

var server = app.listen(3000, function () {
    var host = server.address().address;
    var port = server.address().port;

    console.log('App listening at http://%s:%s', host, port);
});

app.listen()在执行回调函数之前,是否向服务器变量返回值?它如何做到这一点以及如何运作?节点(和javascript)中的所有回调函数都一样吗?

我只想简单地解释执行过程。

需要明确的是,我知道回调函数可以访问服务器变量。但是,如果app.listen方法在向服务器变量返回值之前执行了回调函数,这是否意味着当您尝试访问server.adress()服务器变量的定义仍然不足那是我不明白的。

古斯塔沃亨克

app.listen()在执行回调函数之前是否向服务器变量返回值?

对,就是这样。app.listen()类似于普通的Node.jsserver.listen方法回调是为服务器分配listening事件侦听器的快捷方式

您可以使用以下代码执行相同的操作:

var server = app.listen( 3000 );
server.on( "listening", function () {
  console.log( "server is listening in port 3000" );
});

它如何做到这一点以及如何运作?节点(和javascript)中的所有回调函数都一样吗?

之所以会发生这种情况,是因为Node.js中的IO事件都是异步运行的fs模块例外)-也就是说,它们只会在其他同步代码运行完毕后才会发生。

这个数据与在浏览器JS -如果你运行一些JS进程同步,触发的事件(如clickblur等)将是一个完成后只执行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node js中的回调函数是否以同步方式执行?

来自分类Dev

如何在回调函数Node JS中打破for循环

来自分类Dev

如何在回调函数Node JS中打破for循环

来自分类Dev

如何在JS中回调函数

来自分类Dev

为什么Node.js不执行回调函数?

来自分类Dev

如何从 Node.Js 中的回调函数返回数据

来自分类Dev

在Node.js中制作异步回调函数

来自分类Dev

在Node.js回调中调用模块函数

来自分类Dev

TypeError:回调不是Node.js中的函数

来自分类Dev

等待回调函数在Node.js中返回

来自分类Dev

Node.js中的回调函数没有结果

来自分类Dev

在 Node.js 中,如何在主应用程序中存储来自模块函数的回调数据?

来自分类Dev

如何执行对象构造函数的回调?

来自分类Dev

Node.js:mongoose.once('open')不执行回调函数

来自分类Dev

在node.js中将函数的执行同步为回调参数

来自分类Dev

Node.js:中间件和回调函数的执行顺序?

来自分类Dev

如何在Node.js中将函数/回调传递给子进程?

来自分类Dev

Node.js如何在回调函数之外访问tcp套接字

来自分类Dev

如何在Node.js中将变量传递给预定义的回调函数

来自分类Dev

如何在vue.js的回调函数中的变量中存储值

来自分类Dev

我们如何从node.js中的回调函数访问变量?

来自分类Dev

如何将其他参数传递给node.js中的封装回调函数

来自分类Dev

Node.js:如何从其回调中再次调用函数

来自分类Dev

node.js回调函数dynamodb

来自分类Dev

来自node.js的回调函数

来自分类Dev

回调函数问题Node.js

来自分类Dev

如何在回调函数中调用继承的函数

来自分类Dev

如何在JS异步回调函数中返回值-GAPI

来自分类Dev

如何在React JS中的图像加载事件的回调中使用函数?

Related 相关文章

热门标签

归档