Ich bin neu in Javascript und Nodejs und ich versuche, einen Server einzurichten, der mehrere ItemPages von Amazon-Produkt-API über das node-apac Knotenpaket anfordern kann. Bis jetzt ist mein HTTP-Server in Betrieb und es sind einige Routen definiert. Ich kann auch eine einzelne ItemPage anfordern. Aber ich habe Schwierigkeiten, die Anfragen zu verketten.Wie kettet man mehrere Paging-Anfragen mit node-apac?
Beispiel für theQuery:
var query = {
Title: theTitle,
SearchIndex: 'Books',
BrowseNodeId: '698198',
Power: 'binding:not (Kindle or Kalender)',
Sort: '-publication_date',
ResponseGroup: 'ItemAttributes,Images',
ItemPage: 1
};
der Code:
AmazonWrapper.prototype.getAllPagesForQuery = function(theMethod, theQuery, theResultCallback) {
client.execute(theMethod, theQuery).then(function(theResult) {
var pageCount = theResult.result.ItemSearchResponse.Items.TotalPages;
var requests = [];
for(var i = 2; i < pageCount; i++) {
theQuery.ItemPage = i;
requests.push(client.execute(theMethod, theQuery));
}
Promise.all(requests).then(function(theResults) {
var data = theResults[0];
for(var i = 1; i < theResults.length; i++) {
var items = theResults[i].result.ItemSearchResponse.Items.Item;
data.result.ItemSearchResponse.Items.Item.concat(items);
}
theResultCallback(data);
});
});
};
Wie Sie sehen, ich von der ersten Anfrage lesen möchten, wie viele Itempages sind für meine ItemSearch und eine neue Anfrage erstellen für jede Artikelseite. Leider wird Promise.all (...). Dann() nie aufgerufen.
Jede Hilfe ist willkommen
hinzugefügt Probe für theQuery – JacobZ