javascript - PowerBi Embedded report.getFilters() - 将承诺转换为同步
问题描述
我的页面使用嵌入的 PowerBi,我希望能够在 javaScript 中将报告中的当前过滤器返回给服务器。
调用很简单,只需在 javaScript 中调用 report.getFilters() 即可。对我来说不幸的是,它返回了一个承诺。如何将其转换为同步呼叫?
https://docs.microsoft.com/en-us/javascript/api/powerbi/powerbi-client/report.report
解决方案
JavaScript 中有很多方法可以处理异步属性。我使用了其中一个异步/等待。它用于在 JavaScript 中编写异步代码,以使代码以同步方式运行。在函数之前使用的 async 一词意味着它总是返回一个 Promise。如果一个函数返回一个非承诺值,则异步函数像一个已解决的承诺一样返回。并且 await 仅在 async 函数内部起作用,它使 JavaScript 等待直到 promise 完成并返回结果。
代码:
async function getfilter() {
const embedContainer = $('#embedContainer')[0];
report = powerbi.get(embedContainer);
// Get the filters on the report page
const filter= await report.getFilters();
console.log('The filters on the report is:', filter)
}
输出:[1]:https ://i.stack.imgur.com/K532I.png
您也可以参考 - https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/
推荐阅读
- javascript - 有条件地在组件中渲染 Firebase 数据
- javascript - 如何在不重新加载的情况下更新 Firebase 更改
- google-apps-script - getRange(string) 有效,但 getRange(number) 失败
- javascript - 使用“请选择....”选项在选择字段中添加 vue 选项
- ruby-on-rails - Rails 没有正确划分变量
- flutter - Flutter:抽屉和水平ListView在同一个屏幕上
- html - 为什么绝对定位的“内容可编辑”元素会在溢出:隐藏元素中移动其他绝对元素?
- outlook - 如何访问与我共享的所有日历?
- postgresql - 使用多列在 PostgreSQL 中搜索查询
- java - 当我输入单个单词字符串而不是句子中的单个字符串时,如何停止 do while 循环?不知道怎么说