javascript - Google Data Studio 连接器:兑现承诺?
问题描述
我正在尝试设置自定义 Google Data Studio 连接器。
在“getData”调用中,我需要在返回数据之前运行两个 api 调用。有人告诉我,使用 javascript 承诺是实现这一目标的最佳方式。
如何让“GetData”方法仅在承诺完成后返回?这可能吗?
这是承诺的示例:
function getData(request) {
var apiRequest1 = fetch('www.domain.com/api1').then(function(response){
return response.json()
});
var apiRequest2 = fetch('www.domain.com/api2').then(function(response){
return response.json()
});
var combinedData = {"apiRequest1":{},"apiRequest2":{}};
Promise.all([apiRequest1,apiRequest2]).then(function(values){
combinedData["apiRequest1"] = values[0];
combinedData["apiRequest2"] = values[1];
console.log("combined2"+JSON.stringify(combinedData))
return combinedData;
}
requestedSchema.forEach(function(field) {
switch (field.name) {
case 'weburl':
var urltoTest = request.configParams.urlTotest;
values.push(urltoTest);
break;
case 'pageSpeed':
var pageSpeed = parsedResponse.ruleGroups.SPEED.score;
values.push(pageSpeed);
break;
default:
values.push('');
break;
}
});
解决方案
看起来要让它正常工作的唯一方法就是一个接一个地进行两次获取。
它并不理想 - 但希望 Google 会为 Data Studio 连接器改进这一点
推荐阅读
- javascript - Vue.js - 从父组件中清除子表单字段
- sql - 使用 SAS 和 TD SQL 的逗号
- angularjs - 为 AngularJS 动态插入 Google 跟踪代码管理器 (gtag.js) 跟踪 ID
- yocto - Yocto Dunfell - do_image_wic 由于 image/nitrogen6x 文件夹中缺少图像文件 zImage-imx6q* 而失败
- javascript - 编译 ejs 时 /location 中出现意外的标识符
- postgresql - 从 postgresql 获取数据一星期
- html - 在 VBA 中将 HTML 代码添加为字符串,但文本以红色突出显示
- woocommerce - Woocommerce:将 SKU 保留在旧订单中
- qt - 如何使 QML 动画仅在属性值增加而不是减少时才起作用?
- terminal - 防止二进制数据触发终端控制代码?