我想知道是否有办法获得第二个resolve
值(test2)而不返回数组或JavaScript对象.
function testFunction() {
return new Promise(function(resolve, reject) {
resolve("test1", "test2");
});
}
async function run() {
var response = await testFunction();
console.log(response); // test1
}
run();
Run Code Online (Sandbox Code Playgroud)
我有一个 Crossbar.js 实现,其中数据通过 Crossbar websocket 服务器在客户端(网站)和服务器(Node.js)之间发送。双方使用 Autobahn.JS 连接到 Crossbar 服务器。
连接工作正常,但似乎客户端和服务器都在随机时刻断开并重新连接。这种情况大约每两分钟发生一次。我还看到双方的连接断开不是同时发生的。这让我认为问题出在我在双方使用的高速公路实现上(客户端和服务器大致相同)。
下面是我用来从 Node.js 连接到 Crossbar 服务器的方法。浏览器的版本几乎相同。我只更改了订阅并将const
和let
变量更改为var
.
start(connectionConfig) {
const self = this;
self.host = connectionConfig.host;
self.realm = connectionConfig.realm;
self.channelPrefix = connectionConfig.channelPrefix;
try {
// Start an Autobahn websocket connection
self.connection = new autobahn.Connection({"url": self.host, "realm": self.realm});
self.connection.onopen = function(session) {
// Save session in class
self.session = session;
// Listen for incoming commands
session.subscribe(self.channelPrefix + 'smdc-server', self.onCommand.bind(self));
// Copy the class variable buffer to …
Run Code Online (Sandbox Code Playgroud) javascript ×2
async-await ×1
asynchronous ×1
autobahn ×1
crossbar ×1
es6-promise ×1
node.js ×1