سيكون من الجيد إضافة رد نداء / ثم كلما أنهى map.fitBounds () عمليته. اليوم علينا الاعتماد على إضافة map.once('zoomend moveend', function());
لتحقيق شيء ما بعد ذلك.
على سبيل المثال ، لجعل علامة ترتد بعد الظهور ، يجب أن:
var marker = getMarker();
map.once('zoomend moveend', ()=>{bounceMarker(marker);});
map.fitBounds(marker.getBounds());
سيكون من الجيد أن تفعل شيئًا مثل:
map.fitBounds(marker.getBounds()).then(()=>{bounceMarker(marker);});
سيكون من الرائع أن تقوم وظائف الخريطة التي تقوم بتعديل حالة الخريطة بإرجاع Promise
ما فعلته هو إضافة طريقة إلى خريطتي (تستخدم وعد jquery ، ولكن يمكن استبدالها بسهولة):
zoomToBounds: function () {
var promise = $.Deferred();
this.once("moveend", function () {setTimeout(function () {promise.resolve();}, 20);});
this.fitBounds.call(this, arguments);
return promise;
}
هل يمكنك استبدال $.Deferred()
بـ new Promise()
وبعد ذلك لإنشاء طلب سحب؟
التعليق الأكثر فائدة
سيكون من الرائع أن تقوم وظائف الخريطة التي تقوم بتعديل حالة الخريطة بإرجاع
Promise