プログラムをリファクタリングしようとしています。AJAX 呼び出しを同期化することで機能させていましたが、今は適切な方法で実行したいと考えています。起こっていることは、見出しのリストを含むheadline
新しい見出しでインスタンス化されることです。既存のリストからランダムに見出しを選択しますが、リストが空の場合は、AJAX 呼び出しを行ってさらに見出しを取得します。headlines
headlines.getRandom()
Headline
2 つのオブジェクトを相互依存させずに、呼び出しが完了するまでオブジェクト コンストラクターを待機させる方法について、頭を悩ませることはできません。現状では、呼び出しが正常に完了していないために未定義のオブジェクトからインスタンス化しようとしているため、見出しはインスタンス化に失敗しています。
コールバックについては知っていますが、コールバックを使用して、多くのオブジェクト近親相姦に陥ることなく、あるオブジェクトが別のオブジェクトからの AJAX 呼び出しの成功を待機するようにするにはどうすればよいでしょうか?
headline = new Headline(headlines.getRandom(true));
fillHeadline();
詳細を確認したい場合は、コンテキスト内のコードを次に示します。 https://github.com/raddevon/onion-or-not/blob/true-ajax/js/js.js#L104