mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 18:32:22 +00:00
docs(async): add slepp()
This commit is contained in:
parent
b08e47e674
commit
db8b9171ae
@ -242,13 +242,29 @@ class Sleep {
|
|||||||
}
|
}
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
const actualTime = await new Sleep(1000);
|
const sleepTime = await new Sleep(1000);
|
||||||
console.log(actualTime);
|
console.log(sleepTime);
|
||||||
})();
|
})();
|
||||||
|
// 1000
|
||||||
```
|
```
|
||||||
|
|
||||||
上面代码中,`await`命令后面是一个`Sleep`对象的实例。这个实例不是 Promise 对象,但是因为定义了`then`方法,`await`会将其视为`Promise`处理。
|
上面代码中,`await`命令后面是一个`Sleep`对象的实例。这个实例不是 Promise 对象,但是因为定义了`then`方法,`await`会将其视为`Promise`处理。
|
||||||
|
|
||||||
|
这个例子还演示了如何实现休眠效果。JavaScript 一直没有休眠的语法,但是借助`await`命令就可以让程序停顿指定的时间。下面给出了一个简化的`sleep`实现。
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
async function sleep(interval) {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
setTimeout(resolve, interval);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 用法
|
||||||
|
sleep(1000).then(
|
||||||
|
() => console.log('done')
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
`await`命令后面的 Promise 对象如果变为`reject`状态,则`reject`的参数会被`catch`方法的回调函数接收到。
|
`await`命令后面的 Promise 对象如果变为`reject`状态,则`reject`的参数会被`catch`方法的回调函数接收到。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
Loading…
x
Reference in New Issue
Block a user