0
私は、Javascriptの約束を理解している問題を抱えています。Javascriptで約束を正しく連鎖させ、エラー処理をどうやって説明しますか?
function myPromise() {
return new Promise((resolve, reject) => {
setTimeout(function() {
console.log('done')
reject('resolved');
}, 1000);
});
}
function myOtherPromise() {
return new Promise((resolve, reject) => {
myPromise().then(done => {
resolve(done);
}).catch(e => {
console.log('In myOtherPromise, caught err: ', e);
reject(e)
});
});
}
myOtherPromise().then(done => {
console.log('done calling myOtherPromise: ', done);
}).catch(e => {
console.log('caught err from myOtherPromise', err);
});
出力ショー::次のコードで
done
In myOtherPromise, caught err: resolved
次が印刷されていない理由を私は理解していない:
'caught err from myOtherPromise'
根本的な何かが私があるように私は感じますあまり得意ではない。 myOtherPromise
の拒否が最終的なcatch
ブロックに渡されないのはなぜですか?
はconsole.logを(コールしようとしたとき、その関数がエラーをスローするので) 'にReferenceError:errがdefined'されていません。) – Thomas
は[' Promise'コンストラクタアンチパターンを避けてください](http://stackoverflow.com/q/23803743/1048572)! – Bergi