假设我有两个变量:
var connection1, connection2;
connection1 = connection2 = false;
我有2个不同的功能连接到远程节点,并在连接时将每个变量更改为true
:
node1.on('open', function () {
connection1 = true;
});
node2.on('open', function () {
connection2 = true;
});
我希望函数只在两个连接完成后运行,而不检查每个on
函数中的其他变量。
如何创建一个事件监听器,只有当两个值都设置为true
且不使用1>} 时才会触发?
答案 0 :(得分:1)
承诺是为了挽救这一天。
// Promise.all will fulfill when all promises are resolved or one is rejected
Promise.all(
[
new Promise(
function(resolve, reject)
{
node1.on("open", resolve);
}
),
new Promise(
function(resolve, reject)
{
node2.on("open", resolve);
}
)
]
)
.then(
function()
{
console.log("Connections 1 & 2 opened");
}
)
.catch(
function(error)
{
console.log("Error:", error);
}
);