鉴于我有一个拒绝承诺:在拒绝承诺变换值
var promise = new Promise(function(resolve, reject) {
reject({error_message: "Foo"});
});
而且我想改变这个承诺(在这种情况下:提取错误消息):
var new_promise = promise.then(function(response) {
return response.id;
}, function(error) {
return error.error_message;
});
当我再次运行该承诺:
new_promise.then(function(id) {
console.log("Object created: "+id);
}, function(message) {
console.log("Error: "+message);
});
我总是会在控制台上得到Object created: Foo
。这种转变似乎将被拒绝的承诺转化为已经解决的承诺。
有没有办法转换被拒绝的承诺,所以结果是另一个拒绝承诺?的