我需要對多個REST API使用幾個調用,收集所有結果,按摩它們並將它們放入csv中。異步瀑布和調用Node.js中的API
呼叫API A和添加到陣列d
呼叫API B和添加到陣列d
呼叫API℃並加入到陣列d
使從陣列d一個csv
我一直在嘗試使用異步瀑布,但我希望爲此得到適當的格式。
謝謝你的時間!
我需要對多個REST API使用幾個調用,收集所有結果,按摩它們並將它們放入csv中。異步瀑布和調用Node.js中的API
呼叫API A和添加到陣列d
呼叫API B和添加到陣列d
呼叫API℃並加入到陣列d
使從陣列d一個csv
我一直在嘗試使用異步瀑布,但我希望爲此得到適當的格式。
謝謝你的時間!
從您提出要求的方式看來,您似乎並不需要瀑布。似乎你可以做async.parallel。
var D = [];
async.parallel({
A: function (callback) {
callApiA(callback);
},
B: function (callback) {
callApiB(callback);
},
C: function (callback) {
callApiC(callback);
}
}, function (err, results) {
if (err) return console.error(err);
D.push(results.A, results.B, results.C);
});
通過利用並行API調用可以同時發生,以提高性能。現在,如果您的API B調用只能使用API A的結果,那麼是的,您需要異步的瀑布而不是並行,但是您沒有指定,所以這似乎是您的有效選擇。
var D = [];
async.waterfall([
function(callback) {
//make request to API A and push result to var D
callback(err, D.push(result_from_the_call)); //err is the API call error
},
function(D, callback) {
//make request to API B and push result to var D
callback(err, D.push(result_from_the_call));//err is the API call error
},
function(D, callback) {
//make request to API C and push result to var D
callback(err, D.push(result_from_the_call));//err is the API call error
}
], function (err, result) {
/result has the array with all the data you will get from api call
});
這個網站的工作方式是,你告訴我們你試過的代碼,並解釋你卡在哪裏。這個網站的工作方式,更好的是一個具體的實施,而不是理論。此外,解決這類問題的現代技術也是有保證的,所以最好不要假定異步庫是最好的解決方案。再次向我們展示您的代碼。向我們展示您所調用的API。向我們展示你想要達到的結果。我們還需要知道您的三個API調用是否取決於之前的調用結果,或者它們是否都是不相關的。 – jfriend00
正確的格式?那是什麼意思?此外,顯示你寫的代碼,以便人們可以幫助實施? –
由於看起來你可能在這裏是新的,請閱讀[如何問一個關於堆棧溢出的好問題](http://stackoverflow.com/help/how-to-ask)。您收到的降價是因爲您的問題目前不被視爲一個好問題,但您可以使用「編輯」鏈接進行修復。 – jfriend00