在zapier的代码中使用循环中的fetch

Nas*_*med 2 zapier

我想从我的zapier代码中做3个不同的api调用,在变量中获取它们并合并它们.我无法弄清楚如何做到这一点.它会像:

var urls = [apiUrl1, apiUrl2, apiUrl3];
var output = [];

for ( i = 0; i < urls.length; i++ ) {
    output[i] = fetch( urls[i] );
}
Run Code Online (Sandbox Code Playgroud)

这是一个示例代码.我无法获得对输出的响应,它只获得一个空白对象{}.在输出数组中保存获取返回值的过程是什么?

Lar*_*ars 6

很明显,Zapier的人们不喜欢为这个级别的代码复杂性提供工作示例或任何类型的文档......这是一个工作示例:

var promises = [];

for (var i = urls.length - 1; i >= 0; i--) {
    promises.push(fetch(urls[i]));
}

Promise.all(promises).then(function(res){
    var blobPromises = [];
    for (var i = res.length - 1; i >= 0; i--) {
        blobPromises.push(res[i].text());
    }
    return Promise.all(blobPromises);
}).then(function(body){
    var output = {id: 1234, rawData: body};
    callback(null, output);
}).catch(callback);
Run Code Online (Sandbox Code Playgroud)

这可能不是最干净的解决方案,但它对我有用.干杯!