Portál AbcLinuxu, 12. července 2025 22:28
function sleep(delay) { var start = new Date().getTime(); while(new Date().getTime() < start + delay); } function tcpPortStatus(host, port, wait, delay) { var check = 'closed'; var start = new Date().getTime(); while(new Date().getTime() < start + delay) { var socket = net.createConnection(port, host); socket.on('data', function() { check = socket.readyState; console.log(socket.readyState); }); if(check == 'open') { break; } sleep(wait); } return check; } document.write(tcpPortStatus('127.0.0.1', '5900', 500, 2000));a potrebujem zo "socket.on" získať socket.readyState do premennej check. Nájde sa tu dobrá duša čo mi ukáže ako na to? Za odpovede vopred veľmi pekne ďakujem.
function tcpPortStatus(host, port, wait, delay) { var check = 'closed'; var start = new Date().getTime(); while(new Date().getTime() < start + delay) { var client = net.createConnection(port, host); check = new Promise(function(callback) { client.on('data', function() { callback(client.readyState); }); }).then(function(callback) { console.log(callback); return callback; }); document.write(check); console.log(check); if(check == 'open') { break; } sleep(wait); } return check; } document.write(tcpPortStatus('127.0.0.1', '5900', 500, 2000) + '
');
function sleep(timeout) { var start = new Date().getTime(); while(new Date().getTime() < start + timeout); } async function tcpAsyncWrapper(host, port) { return await tcpPortCheck(host, port); } function tcpPortCheck(host, port) { var client = net.createConnection(port, host); return new Promise(function(resolve, reject) { client.on('data', function() { resolve(client.readyState); }); }).then(function(resolve) { return resolve; }); } function tcpPortStatus(host, port, retry, timeout) { var check = 'closed'; var start = new Date().getTime(); while(new Date().getTime() < start + timeout) { check = tcpAsyncWrapper(host, port) console.log(check); document.write(check); if(check == 'open') { break; } sleep(retry); } return check; } document.write(tcpPortStatus('127.0.0.1', '5900', 500, 2000));Je vôbec možné v JS urobiť to o čo sa snažím? Teda synchrónne počkať na asynchrónnu funkciu?
async function asyncFce() { vysledek1 = await nejakaFce(); vysledek2 = await nejakaFce2(vysledek1); return vysledek2; } function topLevel() { promise = new Promise(function asyncWrapper() { await asyncFce(); }); promise.then(function zpracujVysledek(vysledek) { /* print vysledek */ } ) }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.