Google Data Studio 连接器:运行 一个承诺?
Google Data Studio connector: Running a promise?
我正在尝试设置自定义 Google Data Studio 连接器。
在“getData”调用中,我需要在 return 数据之前 运行 两次 api 调用。有人告诉我,使用 javascript promise 是实现此目标的最佳方式。
如何在 promise 完成后让 'GetData' 方法仅 return?这可能吗?
这里是承诺的例子:
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 连接器改进这一点
我正在尝试设置自定义 Google Data Studio 连接器。
在“getData”调用中,我需要在 return 数据之前 运行 两次 api 调用。有人告诉我,使用 javascript promise 是实现此目标的最佳方式。
如何在 promise 完成后让 'GetData' 方法仅 return?这可能吗?
这里是承诺的例子:
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 连接器改进这一点