怎么封装一个promise
时间: 2024-05-01 11:23:34 浏览: 124
封装 axios+promise通用请求函数操作
5星 · 资源好评率100%
封装 Promise 可以让我们更方便地使用它,可以将一些复杂的异步操作进行封装,让代码更加简洁易读。下面是一个简单的 Promise 封装示例:
```javascript
function myPromise(fn) {
return new Promise((resolve, reject) => {
fn(resolve, reject);
});
}
```
这个函数接受一个函数作为参数,这个函数包含两个参数 resolve 和 reject,这两个参数分别用于处理异步操作成功和失败的情况。返回的是一个 Promise 对象,可以像使用 Promise 一样使用它,例如:
```javascript
myPromise((resolve, reject) => {
setTimeout(() => {
resolve("Hello World!");
}, 1000);
}).then((result) => {
console.log(result); // 输出:Hello World!
}).catch((err) => {
console.error(err);
});
```
这个示例中,我们使用 myPromise 封装了一个异步操作,它在 1 秒钟后返回一个字符串 "Hello World!",然后我们使用 then 方法来处理成功的情况,并在控制台打印出返回的结果。如果出现错误,则使用 catch 方法处理。
阅读全文