【发布时间】:2016-06-15 12:53:57
【问题描述】:
似乎以下工作不会引发错误:
var p = new Promise (function (resolve, reject) {
window.setTimeout(function() {
reject('ko');
}, 1000);
});
p.then(function (value) { console.log(value); })
.catch(function () { console.log('catched'); });
// → 'catched'
但这会引发错误:
var p = new Promise (function (resolve, reject) {
window.setTimeout(function() {
p.catch(function () { console.log('catched'); });
reject('ko');
}, 1000);
});
p.then(function (value) { console.log(value); });
// → 'catched'
// Uncaught (in promise) ko
有什么疯狂的猜测吗?
【问题讨论】:
-
这是因为你没有处理你的
p.then链中的错误......每个p.then或p.catch都是独立的,每个都必须(最终)处理错误
标签: javascript promise ecmascript-6 es6-promise