应该加载 Google Maps Javascript API this way :
<script>
function initMap() {
console.log('loaded');
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?callback=initMap" async defer></script>
如果我必须回答我的问题,我会这样做:
var googleAPILoadedPromise = Promise.pending();
function initMap() {
googleAPILoadedPromise.resolve();
}
googleAPILoadedPromise.promise.then(function() {
console.log('loaded');
});
但是延迟已被弃用并且可能被视为反模式,至少在 bluebird 中是这样。 .有没有更好的办法?
最佳答案
再三考虑,我会这样做:
<script>
var resolvePromise = null;
var promise = new Promise(function(resolve, reject) {
resolvePromise = resolve;
});
promise.then(function() {
console.log('loaded');
});
</script>
<script src="https://maps.googleapis.com/maps/api/js?callback=resolvePromise" async defer></script>
关于javascript - 有没有一种方法可以创建在加载 Google Maps Javascript API 时解析的 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36574674/