promise から別の promise にエラーを自動的に伝播する方法があるかどうか知りたいですか? IE: ネストされた promise からスローされたエラーをキャッチします。
たとえば、次のコード サンプルでは、「internalWorker」のネストされた promise 関数が
.fail(function (error) {
return deferred.reject(error);
});
エラーを伝播するために必要です。この行が含まれていない場合、エラーは先頭にスローされます。(クラッシュしたアプリ)
ネストされたすべての約束に .fail() 関数を追加する必要がないように、エラーを自動的に伝播することは可能でしょうか?
```
function top(input) {
var deferred = q.defer();
internalWorker(input).then(function (value) {
logger.inspectDebug("top success", value);
}).fail(function (error) {
return deferred.reject(error);
});
return deferred.promise;
}
function internalWorker(input) {
var deferred = q.defer();
q.delay(100).then(function () {
throw new Error("internal worker async error");
}).fail(function (error) {
return deferred.reject(error);
});
return deferred.promise;
}
top("hello").then(function (value) {
logger.inspectDebug("outside success", value);
}).fail(function (error) {
logger.inspectDebug("outside fail", error);
}).done();
```