0

DeferredjQuery を使用して、タイムアウト後に解決する独自の約束を作成するオブジェクトがあります。次に、ajax 呼び出しをチェーンし、promise を返します。

var Obj = function() {
  var _obj = new $.Deferred();

  setTimeout(function() {
      _obj.resolve("Resolve One!");
  }, 2000);

  return _obj.promise();
}

new Obj()
.done(function(message) {
  document.write(message);
  return $.get("http://www.jsonip.com/");
})
.done(function(response) {
  document.write(response);
})

メッセージには「Resolve One!」が含まれていると思います。ajax呼び出しからの応答を取得するための応答

予想される結果:

Resolve One!{"ip":"256.256.0.0","about":"/about"}

代わりに得られるもの:

Resolve One!Resolve One!

私は$.get()約束である を返しているので、古い約束がjQueryの約束で上書きされることを期待しています。Webページのコンテンツを応答させるために、代わりに何をすべきですか?

jsfiddle: http://jsfiddle.net/7zUKg/

4

1 に答える 1