javascript - 有没有一种方法可以创建在加载 Google Maps Javascript API 时解析的 promise ?

标签 javascript google-maps google-maps-api-3 promise deferred

应该加载 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/

相关文章:

JavaScript 正则表达式和子匹配

javascript - 如何向通过单击按钮显示的图片添加替代文本?

javascript - 许多谷歌地图监听器同时存在

javascript - 更新 Google Maps API v3 中的 UI 控件

javascript - 邮政编码未出现在自动完成框 Google map 上?

html - 如何在谷歌地图 DIV 中放置一个 DIV?

javascript - 单击时隐藏幻灯片

javascript - 当你显示和隐藏一个 div 时,它会自动重新调整周围的元素吗?

google-maps - 仅列出城市名称 Geocomplete.js 或 Google Location Autocomplete

java - Android 上的谷歌地图是非常慢还是我使用它的方式不对?