假设我有 2 个变量:
var connection1, connection2;
connection1 = connection2 = false;
我有 2 个不同的函数连接到远程节点并在连接时将每个变量更改为 true
:
node1.on('open', function () {
connection1 = true;
});
node2.on('open', function () {
connection2 = true;
});
我希望函数仅在建立两个连接后运行,而不检查每个 on
函数中的其他变量。
如何创建一个仅在两个值都设置为 true
时才会触发的事件监听器 而无需 使用 setInterval
?
最佳答案
有 promise 可以挽救局面。
// 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);
}
);
关于javascript - 同步变量/为变量更改值创建事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46150019/