12.关于JS中的promise理解以及使用
Promise 是 JavaScript 中进行异步编程的一种方式。它代表了某个未来会完成的事件,并且这个事件最终会返回一个值。
以下是一些使用 Promise 的常见方法:
- 创建一个 Promise
let promise = new Promise(function(resolve, reject) {
// 做异步操作
setTimeout(function() {
console.log('异步操作完成');
resolve('我是返回值');
}, 2000);
});
- 使用 then 方法来添加回调函数
promise.then(function(result) {
console.log(result);
});
- 使用 catch 方法来处理异常
promise.then(function(result) {
console.log(result);
}).catch(function(error) {
console.log('出错了', error);
});
- 使用 finally 方法来处理无论 Promise 对象最后状态如何都要做的操作
promise.then(function(result) {
console.log(result);
}).catch(function(error) {
console.log('出错了', error);
}).finally(function() {
console.log('不管怎样,我都会执行');
});
- 使用 Promise.all 来同步处理多个 Promise 对象
let promise1 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('我是返回值1');
}, 2000);
});
let promise2 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('我是返回值2');
}, 2000);
});
Promise.all([promise1, promise2]).then(function(results) {
console.log(results);
});
- 使用 Promise.race 来处理多个 Promise 对象中,只要有一个完成就算完成
let promise1 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('我是返回值1');
}, 2000);
});
let promise2 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('我是返回值2');
}, 5000);
});
Promise.race([promise1, promise2]).then(function(result) {
console.log(result);
});
- 使用 Promise 来处理异步函数
function asyncFunction() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('我是返回值');
}, 2000);
});
}
asyncFunction().then(function(result) {
console.log(result);
});
以上就是 Promise 的一些基本用法,更复杂的用法可以通过学习更多的 JavaScript 和 Promise 相关的知识来实现。
评论已关闭