Wann wird eine dynamisch geladene JavaScript-Bibliothek verfügbar?

Ich habe eine JavaScript-Bibliothek zur Verwendung geschriebenFileSaver.js und die zugehörigen Bibliotheken. Ich möchte jedoch nicht immer FileSaver.js laden, wenn jemand meine Bibliothek verwenden möchte. Und ich möchte sie nicht zwingen, alle verschiedenen FileSaver-bezogenen JavaScript-Bibliotheken mit zu ladenscript Tags selbst (oder laden Sie sogar eines von mir, das das tun würde).

Stattdessen wäre mir so etwas lieber. Wenn sie mich anrufencreateImage Funktion führt es zunächst Folgendes aus:

function createImage(image, name) {
  if (typeof(saveAs) !== 'function') {
    var element = document.createElement('script');
    element.async = false;
    element.src = 'FileSaver.js';
    element.type = 'text/javascript';
    (document.getElementsByTagName('head')[0]||document.body).appendChild(element);
  }
  // now do the saveImage code
}

Problem ist, nach dem oben genannten, diesaveAs Funktion ist noch nicht definiert. Es ist nurnach dem meinecreateImage vervollständigt ist diesaveAs Funktion endgültig definiert.