mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
fs,net: emit 'ready' for fs streams and sockets
... in addition to the event names they currently use. Currently, various internal streams have different events that indicate that the underlying resource has successfully been established. This commit adds ready event for fs and net sockets to standardize on emitting ready for all of these streams. PR-URL: https://github.com/nodejs/node/pull/19408 Fixes: https://github.com/nodejs/node/issues/19304 Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
parent
84afd6e492
commit
1c8149417a
@ -2051,6 +2051,7 @@ ReadStream.prototype.open = function() {
|
||||
|
||||
self.fd = fd;
|
||||
self.emit('open', fd);
|
||||
self.emit('ready');
|
||||
// start the flow of data.
|
||||
self.read();
|
||||
});
|
||||
@ -2207,6 +2208,7 @@ WriteStream.prototype.open = function() {
|
||||
|
||||
this.fd = fd;
|
||||
this.emit('open', fd);
|
||||
this.emit('ready');
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -1188,6 +1188,7 @@ function afterConnect(status, handle, req, readable, writable) {
|
||||
self._unrefTimer();
|
||||
|
||||
self.emit('connect');
|
||||
self.emit('ready');
|
||||
|
||||
// start the first read, or get an immediate EOF.
|
||||
// this doesn't actually consume any bytes, because len=0.
|
||||
|
13
test/parallel/test-fs-ready-event-stream.js
Normal file
13
test/parallel/test-fs-ready-event-stream.js
Normal file
@ -0,0 +1,13 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const tmpdir = require('../common/tmpdir');
|
||||
|
||||
const readStream = fs.createReadStream(__filename);
|
||||
readStream.on('ready', common.mustCall(() => {}, 1));
|
||||
|
||||
const writeFile = path.join(tmpdir.path, 'write-fsreadyevent.txt');
|
||||
tmpdir.refresh();
|
||||
const writeStream = fs.createWriteStream(writeFile, { autoClose: true });
|
||||
writeStream.on('ready', common.mustCall(() => {}, 1));
|
20
test/parallel/test-net-socket-ready-without-cb.js
Normal file
20
test/parallel/test-net-socket-ready-without-cb.js
Normal file
@ -0,0 +1,20 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
|
||||
// This test ensures that socket.connect can be called without callback
|
||||
// which is optional.
|
||||
|
||||
const net = require('net');
|
||||
|
||||
const server = net.createServer(common.mustCall(function(conn) {
|
||||
conn.end();
|
||||
server.close();
|
||||
})).listen(0, common.mustCall(function() {
|
||||
const client = new net.Socket();
|
||||
|
||||
client.on('ready', common.mustCall(function() {
|
||||
client.end();
|
||||
}));
|
||||
|
||||
client.connect(server.address());
|
||||
}));
|
Loading…
Reference in New Issue
Block a user