Поскольку это асинхронные функции, они возвращают обещание.Ваш код должен выглядеть следующим образом:
for (var i = 0; i < worksheets.length; i++) {
var sheet = worksheets[i];
if (sheetList.indexOf(sheet.name) > -1) {
sheet.getFiltersAsync())
.then(function() {
sheet.clearFilterAsync('IN/OUT(DownloadSet)');
})
.then(function() {
console.log('Filter Cleared');
})
}
}
То же самое с applyFilterAsync:
sheet.applyFilterAsync('IN/OUT(DownloadSet)',['In'],tableau.FilterUpdateType.Replace)
.then(function() {
// do something
})
Не видя больше контекста / ошибок, это, вероятно, вызывает ваши проблемы.
РЕДАКТИРОВАТЬ: установить фильтры автоматически оценить значение «В».Я смотрю, если у вас есть правильный синтаксис для установленного фильтра.
ОБНОВЛЕНИЕ :.Это должен быть правильный асинхронный вызов:
Для applyFilterAsync вам нужно передать массив строк, sheet.applyFilterAsync('IN/OUT(DownloadSet)',['In'],tableau.FilterUpdateType.Replace)