Estoy usando JavaScript para solicitar datos de geotab api. Estoy buscando descubrir cómo usar un token, o una versión en geotab, para extraer todos los datos más allá del límite. El problema que tengo es cómo hacer un bucle en la solicitud de alimentación para extraer todos los datos.
Intenté crear un bucle con la lógica de Python, pensando que podía hacer un bucle de las solicitudes hasta que el token actual fuera igual al siguiente token (esto debería significar que llegó al final de las solicitudes). Sin embargo, descubrí que las variables no funcionan en JavaScript como en Python:
while version != nextversion: execute data feed requestEste es el código de ejemplo proporcionado por Geotab. El ejemplo llama al feed de datos para los datos de viajes en un rango de fechas y lo limita a 10 registros cada llamada. Solo devolverá la primera y la segunda llamada. ¿Cuál sería la mejor manera de repetir ese feed hasta que obtenga todos los datos en toDate?
const GeotabApi = require('mg-api-js'); const fs = require('fs'); /*Authenticate*/ const authentication = { credentials: { database: 'database', userName: 'username', password: 'hunter2' }, path: 'http://server.com/' } const api = new GeotabApi(authentication); api.authenticate( success => { console.log('Successful authentication'); }, (error) => { console.log('Something went wrong'); }); /* The following JavaScript example shows how to call GetFeed and return a list of Trips. Note that it returns only the first 10 trips and after that another 10. */ var feed = (function(){ var version = "0000000000000000"; return { next: function(success){ api.call("GetFeed", { "typeName":"Trip", "resultsLimit": 10, "fromVersion": version, "search": { toDate: (new Date()).toISOString(), fromDate: (new Date((new Date()).getTime() - (7 * 24 * 60 * 60 * 1000))).toISOString() } }, function(result){ version = result.toVersion; success(result.data); }); }, reset: function(){ version = "0000000000000000"; } }; })(); feed.next(function(trips){ console.log("First part: ", trips); feed.next(function(trips){ console.log("Second part: ", trips); }); });