【发布时间】:2016-03-17 07:46:20
【问题描述】:
在 Chrome 或 Firefox 的控制台选项卡上尝试这段代码
var p = new Promise(function(resolve, reject) {
setTimeout(function() {
reject(10);
}, 1000)
})
p.then(function(res) { console.log(1, 'succ', res) })
.catch(function(res) { console.log(1, 'err', res) })
.then(function(res) { console.log(2, 'succ', res) })
.catch(function(res) { console.log(2, 'err', res) })
结果是
1 "err" 10
2 "res" undefined
我尝试了许多其他示例,但似乎第一个 then() 返回了一个始终解决且从不拒绝的承诺。我在 Chrome 46.0.2490.86 和 Firefox 42.0 上试过这个。为什么会这样?我以为then() 和catch() 可以链接多次?
【问题讨论】:
标签: javascript google-chrome firefox promise