Разрешить обещание с помощью объекта «тогда»

Это немного абстрактный вопрос, так как у меня сейчас нет конкретного варианта использования. Я заметил, что если вы решите обещание с обещанием

var deferredA = $q.defer();
var deferredB = $q.defer();
deferredA.promise.then(function(result) {
  // Will get here once promiseB has been resolved.
});
deferredA.resolve(deferredB.promise);

чем обещание на самом деле не разрешено, пока обещание не разрешено (и затем обещание разрешено со значением разрешения обещания). Однако, что если бы я хотел разрешить значение объекта с помощью функции «then», например:

var deferred = $q.defer();
deferred.promise.then(function(result) {
  // Aim is to get here with result = {then:function(){}},
  // as though I had resolved a promise with a non-promise value,
  // but this function is never called
});
deferred.resolve({
  then: function() {
  }
});

затем обещание на самом деле никогда не разрешается, поскольку предполагается, что значение является обещанием, хотя в приведенном выше примере это не так, как, например, оно не было создано с помощью $ q.defer (). Есть пример планкр на

http://plnkr.co/edit/Z8XUKzxHtGBKBmgPed2q?p=preview

Это можно обойти? Если да, то как?

редактировать: уточнил отложенные / обещать и положить в пример "тогда" обратные вызовы.

Ответы на вопрос(3)

Ваш ответ на вопрос