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,14 +637,14 @@ console.log('one');
|
|||||||
|
|
||||||
## Promise.reject()
|
## Promise.reject()
|
||||||
|
|
||||||
`Promise.reject(reason)`方法也会返回一个新的Promise实例,该实例的状态为`rejected`。它的参数用法与`Promise.resolve`方法完全一致。
|
`Promise.reject(reason)`方法也会返回一个新的 Promise 实例,该实例的状态为`rejected`。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var p = Promise.reject('出错了');
|
var p = Promise.reject('出错了');
|
||||||
// 等同于
|
// 等同于
|
||||||
var p = new Promise((resolve, reject) => reject('出错了'))
|
var p = new Promise((resolve, reject) => reject('出错了'))
|
||||||
|
|
||||||
p.then(null, function (s){
|
p.then(null, function (s) {
|
||||||
console.log(s)
|
console.log(s)
|
||||||
});
|
});
|
||||||
// 出错了
|
// 出错了
|
||||||
@ -652,6 +652,24 @@ p.then(null, function (s){
|
|||||||
|
|
||||||
上面代码生成一个Promise对象的实例`p`,状态为`rejected`,回调函数会立即执行。
|
上面代码生成一个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之中、但很有用的方法。
|
ES6的Promise API提供的方法不是很多,有些有用的方法可以自己部署。下面介绍如何部署两个不在ES6之中、但很有用的方法。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user