У меня есть цепочка асинхронных вызовов, связанных друг с другом с помощью dojo.Deferred объектов в виде async-обертки (по крайней мере, как я ее понимаю) и функции .then(), чтобы «связывать» асинхронные вызовы.dojo.Deferred: Изящно отменяя цепочку .then()?
На любой из ссылок в цепочке может произойти сбой некоторых тестов (например, мой выбор асинхронного магазина не возвратил никаких объектов и т. Д.), И я хочу изящно выйти из цепочки .then().
Это форма цепи, используемой им. Как я могу убить всю цепочку, где я указываю?
asyncFunc(...).then(function(args) {
//stuff...
return myDeferredReturningFunction(args);
}).then(function(args2) {
//do some test on args2
//if test fails, **how to cancel the chain here?**
}).then(function(args3) { ... etc etc ...
Примечание: Может быть, кто-то может пометить это как «dojo.Deferred»?
Я попробовал это в додзё 1.8. Если на then() есть errBacks, бросок не отменяет цепочку. Выполняются обратные вызовы err. Кажется, что не существует способа действительно сделать исключение в цепочке then. Этот закрытый дефект, похоже, указывает на это: https://bugs.dojotoolkit.org/ticket/3814 –