J'essaie de fractionner une requête API avec une variable offset afin d'avoir des résultats partiels sans attendre la fin de la requête entière. Fondamentalement, je fais une demande API pour les 100 premières valeurs, puis je l'augmente avec 100 de plus jusqu'à la fin. Le décalage n'est que le point de départ.Requêtes API asynchrone avec fonction de rappel
/*Node.js connector to Context.io API*/
var key = xxxxxx;
var secret = "xxxxxxxxx";
var inbox_id = "xxxxxxxxx";
var end_loop = false;
var offset = 6000;
/*global ContextIO, console*/
var ContextIO = require('contextio');
var ctxioClient = new ContextIO.Client('2.0', 'https://api.context.io', { key: key, secret: secret });
while(end_loop === false) {
contextio_request(offset, function(response){
if (response.body.length < 100) { console.log("This is the end "+response.body.length); end_loop = true; }
else { offset += 100; }
console.log("Partial results processing");
});
};
/* Context.io API request to access all messages for the id inbox */
function contextio_request(offset, callback) {
ctxioClient.accounts(inbox_id).messages().get({body_type: 'text/plain', include_body: 1, limit: 100, offset: offset}, function (err, response) {
"use strict";
if (err) {
return console.log(err);
}
callback(response);
});
};
Ce que je ne comprends pas pourquoi si je change le « while » avec un « si la condition », tout fonctionne, mais avec le « tout », il entre dans une boucle infinie ». En outre, est
C'est exactement ce que j'essayais de faire. Merci beaucoup! – parov