loadAndExecuteScript.js 551 B

1234567891011121314151617181920212223242526
  1. import defer from "./defer.js";
  2. /**
  3. * @private
  4. */
  5. function loadAndExecuteScript(url) {
  6. const deferred = defer();
  7. const script = document.createElement("script");
  8. script.async = true;
  9. script.src = url;
  10. const head = document.getElementsByTagName("head")[0];
  11. script.onload = function () {
  12. script.onload = undefined;
  13. head.removeChild(script);
  14. deferred.resolve();
  15. };
  16. script.onerror = function (e) {
  17. deferred.reject(e);
  18. };
  19. head.appendChild(script);
  20. return deferred.promise;
  21. }
  22. export default loadAndExecuteScript;