Je souhaite obtenir des informations sur les lieux utilisant l'API Google Adresses. Il est, je veux obtenir des données de plus de 1000 enregistrements, par ville de la région que je cherche.Retard Ajax Fonction par demande avec l'API Google Maps
Je cherche une pizzeria, et je veux toutes les pizzerias de la région que j'ai définies. J'ai donc un tableau comme celui-ci:
['Pizzeria+Paris','Pizzeria+Marseille','Pizzeria+Nice','Pizzeria+Toulouse']
Mon objectif est de faire une demande unique, puis attendre 3 secondes (ou plus), et traiter ensuite la deuxième demande. J'utilise la bibliothèque Lodash pour m'aider à itérer.
Voici mon code:
function formatDetails(artisan){
var latitude = artisan.geometry.location.lat;
var longitude = artisan.geometry.location.lng;
var icon = artisan.icon;
var id = artisan.id;
var name = artisan.name;
var place_id = artisan.place_id;
var reference = artisan.reference;
var types = artisan.types.toString();
$('#details').append('<tr>'+
'<td>'+latitude+'</td>'+
'<td>'+longitude+'</td>'+
'<td>'+icon+'</td>'+
'<td>'+id+'</td>'+
'<td>'+name+'</td>'+
'<td>'+place_id+'</td>'+
'<td>'+reference+'</td>'+
'<td>'+types+'</td>'+
'</tr>');
}
var getData = function(query, value){
$.ajax({
url: query,
type: "GET",
crossDomain: true,
dataType: "json",
success: function(response) {
var artisan = response.results;
console.log(artisan);
for (var i = 0; i < artisan.length; i++){
formatDetails(artisan[i]);
setTimeout(function(){console.log('waiting1');},3000);
}
setTimeout(function(){console.log('waiting2');},3000);
},error: function(xhr, status) {
console.log(status);
},
async: false
});
}
$(document).ready(function(){
var places =
['Pizzeria+Paris','Pizzeria+Marseille','Pizzeria+Nice','Pizzeria+Toulouse'];
_.forEach(places, function(value, key) {
var proxy = 'https://cors-anywhere.herokuapp.com/';
var target_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json?query='+value+'&key=AIzaSyAClTjhWq7aFGKHmUwxlNUVBzFpIKTkOrA';
var query = proxy + target_url;
getData(query, value);
});
});
J'ai essayé beaucoup de solutions que je trouve sur stackoverflow, mais personne ne travaillaient, ou je aurais pu faire les mauvais.
Merci pour votre aide!
'J'ai essayé beaucoup de solutions que j'ai trouvées sur stackoverflow' celles que vous avez essayées? –
J'ai essayé ce que vous pouvez trouver ici: https://stackoverflow.com/questions/33395048/set-a-delay-in-ajax-call https://stackoverflow.com/questions/18965768/set-a- delay-in-a-repeat-jquery-ajax-function https://stackoverflow.com/questions/17332976/delay-in-ajax-success-not-working https: // stackoverflow.com/questions/40829915/je-veux-retarder-jquery-ajax-succès-fonction – yofisim