【发布时间】:2021-05-25 14:23:55
【问题描述】:
我一直试图在调用格式函数时执行事件处理函数,然后删除事件处理函数。这样就限制了监听计算函数的时间。
这个示例Remove an event handler 声明了函数,但我对调用“remove()”的地方有点困惑。
async function format() {
var eventResult;
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
eventResult = sheet.onCalculated.add(function(event){
return Excel.run(function (context){
//Do some things
return context.sync().then(function () {
//Do some things
})
.then(()=>{
// remove(); -> error: eventResult is not defined
})
});
});
// remove(); -> error: eventResult is not defined
return context.sync();
});
}
移除功能:
async function remove() {
await Excel.run(eventResult.context, function (context) {
eventResult.remove();
return context.sync()
.then(function() {
eventResult = null;
console.log("Event handler successfully removed.");
});
})
}
【问题讨论】:
-
我认为示例中可能存在错误。尝试只将 eventResult 传递给 Excel.run 而不是 eventResult.context。
标签: office-js office-addins excel-addins