Замените старое обещание новым в отложенной цепочке jquery

У меня есть объект, который использует jQuery Deferred для создания собственного обещания, которое я разрешаю после тайм-аута. Затем я связываю вызов ajax и возвращаю обещание.

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);
})

Я ожидаю, что в сообщении будет «Решить один!» и ответ, чтобы получить ответ от вызова ajax

Ожидаемый результат:

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

Что я получаю взамен:

Resolve One!Resolve One!

Поскольку я возвращаю $.get(), что является обещанием, я ожидаю, что старое обещание будет заменено обещанием из jQuery. Что я должен делать вместо этого, чтобы получить содержимое веб-страницы в ответ`?

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


person Elvis D'Souza    schedule 01.02.2013    source источник


Ответы (1)