nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

apiLoader.js (800B)


      1 import loadScript from 'load-script';
      2 
      3 let _smap = null;
      4 let _pending = null;
      5 
      6 function getLoader() {
      7     const loaderUrl = 'https://api.mapy.cz/loader.js';
      8     return new Promise((resolve, reject) => {
      9         loadScript(loaderUrl, (error) => {
     10             if (error) {
     11                 reject(error);
     12             } else {
     13                 resolve(window.Loader);
     14             }
     15         });
     16     });
     17 }
     18 
     19 function loadApi(loader) {
     20     return new Promise((resolve) => {
     21         loader.async = true;
     22         loader.load(null, {pano: true}, () => {
     23             resolve(window.SMap);
     24         });
     25     });
     26 }
     27 
     28 function getSMap() {
     29     if (_smap) {
     30         return _smap;
     31     }
     32     if (!_pending) {
     33         _pending = getLoader().then((loader) => loadApi(loader));
     34     }
     35     return _pending;
     36 }
     37 
     38 export {getSMap};