JSONで一連の画像の情報を取得し、それらをダイアログに表示して選択するプラグインを作成しています。残念ながら、私の最初の直感は明らかに競合状態になります。
var ImageDialog = function () {};
ImageDialog.prototype.items = [];
ImageDialog.prototype.fetch_images() {
var parse_images = function(data) {
// Magically parse these suckers.
data = awesome_function(data);
this.items = data;
};
magicalxhrclass.xhr.send({"url": 'someurl', "success": parse_images, "success_scope": this});
}
ImageDialog.prototype.render = function () {
this.fetch_images();
// XHR may or may not have finished yet...
this.display_images();
this.do_other_stuff();
};
var monkey = new ImageDialog();
monkey.render();
parse_images
頭のてっぺんから、コールバックを変更して残りのレンダリング手順を含めることで、これを修正できると思います。しかし、それは完全には正しく見えません。なぜこのfetch_images
メソッドは画像の表示についてたくさんのことを呼び出すのでしょうか?
だから:私はここで何をすべきですか?
延期が役立つと確信していますが、残念ながら、外部ライブラリなしでこれを作成する必要があります。:(
他のコードの臭いについてのコメントもいいでしょう!