Javascript 节点js创建服务器并连接
请看以下代码:Javascript 节点js创建服务器并连接,javascript,node.js,Javascript,Node.js,请看以下代码: var server = net.createServer(function(socket) { //Code block A socket.on('connect', function() { //Code block B }) socket.on('data' , function (data){ //Code C }); }); 是否有可能执行代码块a而不执行代码块B,反之亦
var server = net.createServer(function(socket) {
//Code block A
socket.on('connect', function() {
//Code block B
})
socket.on('data' , function (data){
//Code C
});
});
是否有可能执行代码块a而不执行代码块B,反之亦然?
如果是,在什么情况下
例如:一旦代码A被执行,代码C可以多次运行,而代码A不会再次运行。如果执行了块B中的代码,则块A中的代码必须已经执行。如果执行了块B中的代码,那么块A中的代码一定已经执行了。这闻起来有点像面试类型的问题,但是 1) A或B都不会运行,因为没有
服务器。请侦听使其开始侦听
2) 如果调用.listen
,则A将运行(如果.listen成功),但B将在客户端连接到服务器之前不会运行。在连接中,a将运行,然后B(假设连接成功)。这听起来有点像面试类型的问题,但
1) A或B都不会运行,因为没有服务器。请侦听使其开始侦听
2) 如果调用.listen
,则A将运行(如果.listen成功),但B将在客户端连接到服务器之前不会运行。在一个连接上,a将运行,然后B(假设连接成功)。好吧,如果您调用。listen()
,我想您会发现您得到以下顺序:
(Client connects) // "connect" event fires
|
v
[A]--*-----. // This is the Socket's "connect" event firing.
| | // B and C are bound to their respective events.
| |
| |
[B] <--. // Binds handler to "connection" event, but
| // connection event fires instantly
|
[C] <--. // "data" event is fired
|
(Client sends data)
(客户端连接)/“连接”事件激发
|
v
[A] ---*.//这是套接字的“连接”事件触发。
||//B和C绑定到各自的事件。
| |
| |
[B] 好吧,如果你调用.listen()
,我想你会发现你得到一个订单:
(Client connects) // "connect" event fires
|
v
[A]--*-----. // This is the Socket's "connect" event firing.
| | // B and C are bound to their respective events.
| |
| |
[B] <--. // Binds handler to "connection" event, but
| // connection event fires instantly
|
[C] <--. // "data" event is fired
|
(Client sends data)
(客户端连接)/“连接”事件激发
|
v
[A] ---*.//这是套接字的“连接”事件触发。
||//B和C绑定到各自的事件。
| |
| |
[B] 不是面试,只是好奇。你错了。当你开始听的时候,代码A不会被执行。不是面试,只是好奇。你错了。当你开始听的时候,代码A不会被执行。代码c可以在代码A执行一次后多次运行。代码c可以在代码A执行一次后多次运行。我不理解你的计划。据我所知,每次代码A运行时,代码B都会运行。真的吗?事实上,传入的函数已注册为服务器“connect”事件的处理程序。请参阅我编辑的文章,以了解更清晰的内容,在我写这篇文章时重新整理图表。我不理解您的方案。据我所知,每次代码A运行时,代码B都会运行。真的吗?事实上,传入的函数已注册为服务器“connect”事件的处理程序。请参阅我编辑的文章,了解更多信息,在我写这篇文章时重新整理图表。