Можно ли вернуть что-либо из обещания notify
callback?Можно ли вернуть значение из обещания, чтобы узнать обратный вызов?
В следующем коде ServiceB.Start
возвращает отложенное обещание, где отложенное определяется на ServiceB
:
ServiceB.Start(action).then(
function() {console.log("Success");},
function() {console.log("Failed");},
function (notifyObject) {
var deferred = $q.defer();
//do something time consuming
$timeout(function() {
if (notifyObject.success) {
deferred.resolve({ message: "This is great!" });
} else {
deferred.reject({ message: "Really bad" });
}
}, 5000);
console.log(notifyObject.message);
return deferred.promise;
}
);
var notifyReturnValue = ServiceB.deferred.notify(notifyObject);
notifyReturnValue.then(
function() {
//do something else
ServiceB.deferred.resolve(data);
}
);
}
notifyReturnValue
кажется неопределенным. Есть ли способ вернуть что-то из deferred.notify()
?
Отложенный запрос. Я вызываю внутри уведомления - это локальная отсрочка, определенная внутри самого уведомления, а не та, на которую вызывается уведомление. И именно это местное отложенное. Я пытаюсь вернуться назад. Но угадайте, что я пытаюсь сделать, не буду работать, поскольку возвращаемое значение будет передано следующему уведомляемому обратному вызову только в строке. Я мог бы объединить все свои обещания. Однако я пытался инкапсулировать обязанности к различным контроллерам, а не смешивать их. –
Канал уведомлений - это просто способ уведомления слушателя о прогрессе действия. Его нельзя использовать ни для чего другого. Используйте другие шаблоны (например, события) для другого взаимодействия между вашими компонентами. – hon2a