justinhelmer
7/11/2017 - 5:24 PM

example of _thirdPartyScripts using promises

example of _thirdPartyScripts using promises

define([
  'config',
  'scriptjs',
  'bluebird'
], function (config, $script, Promise) {
  'use strict';

  return {
    load: () => new Promise((resolve, reject) => {
      let scripts = [
        '/mew20/scripts/util/popStateFix.js',
        '/mew20/scripts/util/itunesLoader.js', 
        '/mew20/scripts/util/gatewayLoader.js'
      ];
      
      if (App.config.BrightTag.siteId) {
        scripts.push('//s.btstatic.com/tag.js#site=' + App.config.BrightTag.siteId);
      }

      var tealiumKS = ENV_CONFIG.tealium_enabled === 'on' ? true : false;

      if (tealiumKS) {
        var tealiumEnvironment = ENV_CONFIG.tealium_environment,
          brand = App.config.brand,
          brandNameForTealium = brand === 'mcom' ? 'macys' : brand;

        scripts.push('//tags.tiqcdn.com/utag/' + brandNameForTealium + '/main/' + tealiumEnvironment + '/utag.js');
      }
      
      $script(scripts, 'bundle');
      $script.ready('bundle', resolve, reject);
    })
  };
});

// usage
require('_thirdPartyScripts.promise.js').load().then(() => {
  console.log('ready!');
});