Javascript Tableau服务器筛选器和getfilterAsync承诺

Javascript Tableau服务器筛选器和getfilterAsync承诺,javascript,promise,tableau-api,async.js,Javascript,Promise,Tableau Api,Async.js,我尽量让它短一点,有人能帮我吗。 我是javascript新手 我是javascript新手,我想让下面的代码尽可能短一些,谢谢 我使用它在tableau服务器中获取过滤器,并在html端显示它 谢谢你的帮助 function onFilterChanged() { var sheet = viz.getWorkbook().getActiveSheet(); //worksheet. if (she

我尽量让它短一点,有人能帮我吗。 我是javascript新手 我是javascript新手,我想让下面的代码尽可能短一些,谢谢

我使用它在tableau服务器中获取过滤器,并在html端显示它

谢谢你的帮助

function onFilterChanged() {
                var sheet = viz.getWorkbook().getActiveSheet();
                //worksheet.
                if (sheet.getSheetType() === 'worksheet') {
                    sheet.getFiltersAsync()
                    .then(function(filters) {
                        var values = "";
                        var html = "";
                        //comment here
                        for (var i = 0; i < filters.length; i++) {
                            html += "<b>Filter " + i + ":</b><ul>";
                            AccessControlFilter = filters[i].getAppliedValues();
                            html += "<li><b>Field Name:</b> " + filters[i].getFieldName();
                            //comment here
                            for (var j = 0; j < AccessControlFilter.length; j++) {
                                html += "<br/><b>Value:</b> " + AccessControlFilter[j].value;
                                    if (i === 0){
                                        values += AccessControlFilter[j].value + ", ";
                                   }
                                };
                            html += "</li></ul>";
                        }
                        var infoDiv = document.getElementById('filterDetails');
                        infoDiv.innerHTML = html;
                        var myVal = values.split(', ');
                        document.getElementById('myList').value = myVal;`enter code here`
    
                    })
                } else {
                    // dashboard or story.
                    var workSheetArray = sheet.getWorksheets();
                    //comment here
                    for (var i = 0; i < workSheetArray.length; i++) {
                        workSheetArray[i].getFiltersAsync()
                        .then(function(filters) {
                            var values = "";
                            var html = "";
                            //comment here
                            for (var i = 0; i < filters.length; i++) {
                                html += "<b>Filter " + i + ":</b><ul>";
                                AccessControlFilter = filters[i].getAppliedValues();
                                html += "<li><b>Field Name:</b> " + filters[i].getFieldName();
                                //comment here
                                for (var j = 0; j < AccessControlFilter.length; j++) {
                                    html += "<br/><b>Value:</b> " + AccessControlFilter[j].value;
                                        if (i === 0){
                                            values += AccessControlFilter[j].value + ", ";
                                       }
                                    };
                                html += "</li></ul>";
                            }
                            //comment here
                            var infoDiv = 
                            document.getElementById('filterDetails');
                            infoDiv.innerHTML = html;
                            //comment here
                            var myVal = values.split(', ');
                            document.getElementById('myList').value = myVal;
                        })
                    }
                }
            }
嗨,我试着把它缩短一些。有人能帮我吗。 我是javascript新手 我是javascript新手,我想让下面的代码尽可能短一些,谢谢

我用它来获取过滤器,并在html端显示它

谢谢你的帮助

function onFilterChanged() {
                var sheet = viz.getWorkbook().getActiveSheet();
                //worksheet.
                if (sheet.getSheetType() === 'worksheet') {
                    sheet.getFiltersAsync()
                    .then(function(filters) {
                        var values = "";
                        var html = "";
                        //comment here
                        for (var i = 0; i < filters.length; i++) {
                            html += "<b>Filter " + i + ":</b><ul>";
                            AccessControlFilter = filters[i].getAppliedValues();
                            html += "<li><b>Field Name:</b> " + filters[i].getFieldName();
                            //comment here
                            for (var j = 0; j < AccessControlFilter.length; j++) {
                                html += "<br/><b>Value:</b> " + AccessControlFilter[j].value;
                                    if (i === 0){
                                        values += AccessControlFilter[j].value + ", ";
                                   }
                                };
                            html += "</li></ul>";
                        }
                        var infoDiv = document.getElementById('filterDetails');
                        infoDiv.innerHTML = html;
                        var myVal = values.split(', ');
                        document.getElementById('myList').value = myVal;`enter code here`
    
                    })
                } else {
                    // dashboard or story.
                    var workSheetArray = sheet.getWorksheets();
                    //comment here
                    for (var i = 0; i < workSheetArray.length; i++) {
                        workSheetArray[i].getFiltersAsync()
                        .then(function(filters) {
                            var values = "";
                            var html = "";
                            //comment here
                            for (var i = 0; i < filters.length; i++) {
                                html += "<b>Filter " + i + ":</b><ul>";
                                AccessControlFilter = filters[i].getAppliedValues();
                                html += "<li><b>Field Name:</b> " + filters[i].getFieldName();
                                //comment here
                                for (var j = 0; j < AccessControlFilter.length; j++) {
                                    html += "<br/><b>Value:</b> " + AccessControlFilter[j].value;
                                        if (i === 0){
                                            values += AccessControlFilter[j].value + ", ";
                                       }
                                    };
                                html += "</li></ul>";
                            }
                            //comment here
                            var infoDiv = 
                            document.getElementById('filterDetails');
                            infoDiv.innerHTML = html;
                            //comment here
                            var myVal = values.split(', ');
                            document.getElementById('myList').value = myVal;
                        })
                    }
                }
            }
函数onFilterChanged(){
var sheet=viz.get工作簿().getActiveSheet();
//工作表。
如果(sheet.getSheetType()=='工作表'){
sheet.getFilterAsync()
.then(功能(过滤器){
var值=”;
var html=“”;
//评论这里
对于(变量i=0;i”;
AccessControlFilter=filters[i].GetAppliedValue();
html+=“
  • 字段名:”+过滤器[i].getFieldName(); //评论这里 对于(var j=0;j值:”+AccessControlFilter[j]。值; 如果(i==0){ values+=AccessControlFilter[j]。值+“,”; } }; html+=“
  • ”; } var infoDiv=document.getElementById('filterDetails'); infoDiv.innerHTML=html; var myVal=values.split(','); document.getElementById('myList')。value=myVal;`在此处输入代码` }) }否则{ //仪表板或故事。 var workSheetArray=sheet.getWorksheets(); //评论这里 对于(变量i=0;i”; AccessControlFilter=filters[i].GetAppliedValue(); html+=“
  • 字段名:”+过滤器[i].getFieldName(); //评论这里 对于(var j=0;j值:”+AccessControlFilter[j]。值; 如果(i==0){ values+=AccessControlFilter[j]。值+“,”; } }; html+=“
  • ”; } //评论这里 var infoDiv= document.getElementById('filterDetails'); infoDiv.innerHTML=html; //评论这里 var myVal=values.split(','); document.getElementById('myList')。value=myVal; }) } } }