使用async和await封装一个类
时间: 2023-10-12 16:14:31 浏览: 48
下面是一个使用async和await封装的类的示例:
```javascript
class AsyncClass {
async functionOne() {
return new Promise((resolve, reject) => {
// ... some async code
if (/* async code succeeds */) {
resolve(/* async code result */);
} else {
reject(/* async code error */);
}
});
}
async functionTwo() {
const result = await this.functionOne();
// ... some async code that depends on the result of functionOne
return result;
}
}
// usage
const instance = new AsyncClass();
instance.functionTwo()
.then(result => console.log(result))
.catch(error => console.error(error));
```
在这个示例中,我们定义了一个名为AsyncClass的类,该类包含了两个异步函数:functionOne和functionTwo。这两个函数都使用async和await关键字来处理异步操作。functionOne返回一个Promise,该Promise在异步操作完成时解决或拒绝。functionTwo使用await关键字来等待functionOne的Promise解决,并在其结果上执行一些操作。
我们可以使用以下代码来创建AsyncClass的一个实例,并调用其中的函数:
```javascript
const instance = new AsyncClass();
instance.functionTwo()
.then(result => console.log(result))
.catch(error => console.error(error));
```
在这里,我们调用functionTwo,并使用then和catch方法来处理Promise的解析和拒绝。如果Promise解决,则结果将被打印到控制台上;如果Promise被拒绝,则错误将被打印到控制台上。