首页 > 解决方案 > Nodejs websockets客户端未决承诺

问题描述

尝试使用 Promise 作为 nodejs 客户端从 websocket 连接中捕获所有数据。脚本在收到所有消息和 console.logging 之前退出'Promise { <pending> }',我希望它记录“响应 #1 | 再见'。

const WebSocket = require('ws');
const ws = new WebSocket('wss:url');

let results = new Promise(function(resolve, reject) {
    ws.on('open', function open() {
      ws.send('hello');
    });
    let receivedResults = '';
    ws.on('message', function incoming(data) {
        if (data == 'goodbye') {
            receivedResults += ' | ' + data;
            resolve(result);
        } else {
            receivedResults = data;
        }
    });
});
console.log(results);

标签: javascriptnode.jswebsocketpromise

解决方案


要让它记录response #1 | goodbye,您需要等待它解决。

results.then(data => console.log(data));

推荐阅读