Moin.
Ich sehe keine Möglichkeit, dein Problem in JavaScript zu lösen - hier macht sich das Fehlen von Multi-Threading bemerkbar.
Entweder, du schreibt deine API so um, dass callbacks verwendet werden, oder du nimmst in Kauf, dass bestimmte Funktionalität zeitweilig nicht zur Verfügung steht.
Eine Funktion, die JSON benötigt, enthält dann z.B. folgenden Schnipsel:
if(!window.JSON) {
if(!window.JSON_requested) {
window.JSON_requested = true;
loadScript('json.js'); // asynchronous
}
throw new Error('sry, no JSON yet'); // or: return ERR_VALUE;
}
Der Programmierer ist dann dafür verantworlich, auf diese Situation angemessen zu reagieren.
Christoph