封装一个promise
时间: 2023-03-10 13:38:03 浏览: 85
以下是一个简单的 JavaScript 中封装一个 Promise 的示例:
```javascript
// 定义一个 myPromise 函数,它接受一个 callback 函数作为参数
function myPromise(callback) {
return new Promise(callback);
}
// 使用 myPromise
myPromise((resolve, reject) => {
setTimeout(() => {
resolve("success");
}, 1000);
}).then(result => {
console.log(result); // "success"
});
```
上面的示例中,我们定义了一个名为 myPromise 的函数,该函数接受一个 callback 函数作为参数。在 callback 函数中,可以使用 resolve 函数将结果传递给 then 方法,使用 reject 函数将错误传递给 catch 方法。这样,我们就可以在 myPromise 中处理异步操作,并将结果或错误传递给 then 或 catch 方法。
相关问题
怎么封装一个promise
封装 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 方法处理。
封装一个promise函数
我可以为您提供一个简单的promise函数的示例:let promise = new Promise(function(resolve, reject) {
// 这里写异步操作
setTimeout(function() {
// 异步操作执行成功,调用resolve
resolve('success');
}, 1000);
});promise.then(function(value) {
// success
console.log(value);
}, function(error) {
// failure
console.log(error);
});
阅读全文