问题描述
我想在给定面板打开后采取行动,如下所示:
sidebar.API.openPanel(document.querySelector("#panel"))
.then(function)
documentation 提供了绑定到操作的方法:
sidebar.API.bind("openPanel:finish",function(panel){
function()
}
但后来它永久完成了。我只想做一次,而且没有“解除绑定”的方法。有没有办法做到这一点?
解决方法
您可以在 .bind
函数之外使用范围内的变量,在函数内部将其设置为 true
并添加仅当所述变量为 false
时才执行代码的检查
let isOpened = false
sidebar.API.bind("openPanel:finish",function(panel){
if(isOpened === false){ isOpened = true }
else return
function(){ // Here is your code that will execute only once }
}