mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-28 21:32:20 +00:00
docs(promise): edit Promise.reject
This commit is contained in:
parent
e653a31d7b
commit
a44b2f0fa8
@ -637,7 +637,7 @@ console.log('one');
|
||||
|
||||
## Promise.reject()
|
||||
|
||||
`Promise.reject(reason)`方法也会返回一个新的Promise实例,该实例的状态为`rejected`。它的参数用法与`Promise.resolve`方法完全一致。
|
||||
`Promise.reject(reason)`方法也会返回一个新的 Promise 实例,该实例的状态为`rejected`。
|
||||
|
||||
```javascript
|
||||
var p = Promise.reject('出错了');
|
||||
@ -652,6 +652,24 @@ p.then(null, function (s){
|
||||
|
||||
上面代码生成一个Promise对象的实例`p`,状态为`rejected`,回调函数会立即执行。
|
||||
|
||||
注意,`Promise.reject()`方法的参数,会原封不动地作为`reject`的理由,变成后续方法的参数。这一点与`Promise.resolve`方法不一致。
|
||||
|
||||
```javascript
|
||||
const thenable = {
|
||||
then(resolve, reject) {
|
||||
reject('出错了');
|
||||
}
|
||||
};
|
||||
|
||||
Promise.reject(thenable)
|
||||
.catch(e => {
|
||||
console.log(e === thenable)
|
||||
})
|
||||
// true
|
||||
```
|
||||
|
||||
上面代码中,`Promise.reject`方法的参数是一个`thenable`对象,执行以后,后面`catch`方法的参数不是`reject`抛出的“出错了”这个字符串,而是`thenable`对象。
|
||||
|
||||
## 两个有用的附加方法
|
||||
|
||||
ES6的Promise API提供的方法不是很多,有些有用的方法可以自己部署。下面介绍如何部署两个不在ES6之中、但很有用的方法。
|
||||
|
Loading…
x
Reference in New Issue
Block a user