我浏览了一些Cisco教程和一些朋友的帮助,以使该函数能够根据设备状态的结果运行一些命令。
我想增加设备的状态,然后根据X个结果运行该功能。
我尝试创建一个变量0,然后递增结果,但是我不知道如何将其应用于函数。
xapi.status.on("RoomAnalytics PeoplePresence", checkPeopleCount);
function checkPeopleCount(peeps) {
if (peeps === 'No') {
xapi.command("Presentation Stop");
console.log('Content Stopped');
}
}
最终,我希望它可以基于3个或更多“否”响应运行,而不是基于一个“否”响应运行某些命令。
答案 0 :(得分:2)
执行此操作的典型方法是捕获闭包中的count变量,然后返回使用该count的新函数,然后可以将其传递给处理程序。出于演示目的,b.addEventListener
类似于您的xapi.status.on
let b = document.getElementById('button')
function checkPeopleCount() {
let count = 0
return function(peeps) {
if (count === 3) {
console.log("hit three: count is:", count)
} else {
console.log("count: ", count)
}
count++
}
}
let counter = checkPeopleCount()
b.addEventListener('click', counter)
<button id="button">click me</button>
(显然没有经过测试),但这会转化为大致类似的内容:
function makeCounter() {
let clicks = 0
return function(peeps){
if (clicks === 3) {
xapi.command("Presentation Stop");
console.log('Content Stopped');
} else if(peeps === 'No') {
clicks++;
} else {
doSomethingElse();
}
}
}
checkPeopleCount = makeCounter()
xapi.status.on("RoomAnalytics PeoplePresence", checkPeopleCount);