Leaflet: map.fitBounds com retorno de chamada após o término da operação

Criado em 28 nov. 2018  ·  3Comentários  ·  Fonte: Leaflet/Leaflet

Seria bom adicionar um retorno de chamada / then sempre que map.fitBounds () encerrasse sua operação. Hoje temos que contar com a adição de map.once('zoomend moveend', function()); para fazer algo acontecer depois.

Por exemplo, para fazer um marcador saltar depois de aparecer, preciso:

var marker = getMarker();
map.once('zoomend moveend', ()=>{bounceMarker(marker);});
map.fitBounds(marker.getBounds());

Seria bom fazer algo como:
map.fitBounds(marker.getBounds()).then(()=>{bounceMarker(marker);});

Comentários muito úteis

Seria ótimo se as funções de mapa que modificam o estado do mapa retornassem Promise

Todos 3 comentários

Seria ótimo se as funções de mapa que modificam o estado do mapa retornassem Promise

O que eu fiz foi adicionar método ao meu mapa (usa promessa jquery, mas pode ser facilmente substituído):

zoomToBounds: function () {
  var promise = $.Deferred();
  this.once("moveend", function () {setTimeout(function () {promise.resolve();}, 20);});
  this.fitBounds.call(this, arguments);
  return promise;
}

Você pode substituir $.Deferred() por new Promise() E então criar uma solicitação pull?

Esta página foi útil?
0 / 5 - 0 avaliações