Create a Promise that resolves when jQuery loads
This is... hacky. It's extra code that could have just gone away if you just loaded your scripts through proper methods.


If jQuery is ubiquitous, it might be more beneficial to just load it up front.
If you have a build step, then compile it as a dependency of your app.
If you're doing asynchronous modules, consider using RequireJS.


In addition, browser cache will do its part to reduce loading times. Only the initial load will be slow. Also, async does not help in any way with load speed. It only reduces the time your script will block the HTML.