返回
JavaScript Promise:精通静态和实例方法,解锁异步编程新技能
前端
2024-01-10 23:52:48
Promise的静态方法
Promise提供了几个静态方法,这些方法可以帮助我们创建和管理Promise。
- Promise.resolve(value) :创建一个新的Promise对象,并立即将其置于已完成状态,并将给定的值作为结果。
- Promise.reject(reason) :创建一个新的Promise对象,并立即将其置于已拒绝状态,并将给定的原因作为结果。
- Promise.all(promises) :创建一个新的Promise对象,该Promise对象将等待给定的所有Promise对象完成,然后将所有Promise对象的结果作为数组返回。
- Promise.race(promises) :创建一个新的Promise对象,该Promise对象将等待给定的所有Promise对象中的第一个完成,然后将第一个完成的Promise对象的结果作为结果。
Promise的实例方法
Promise对象提供了几个实例方法,这些方法可以帮助我们处理Promise的状态和结果。
- then(onFulfilled, onRejected) :添加一个回调函数,该回调函数将在Promise对象完成时被调用。如果Promise对象以已完成状态完成,则将调用第一个回调函数onFulfilled,并将Promise对象的结果作为参数传递给该回调函数。如果Promise对象以已拒绝状态完成,则将调用第二个回调函数onRejected,并将Promise对象的原因作为参数传递给该回调函数。
- catch(onRejected) :添加一个回调函数,该回调函数将在Promise对象被拒绝时被调用。该回调函数将收到Promise对象的原因作为参数。
- finally(onFinally) :添加一个回调函数,该回调函数无论Promise对象是已完成还是已拒绝都会被调用。该回调函数不会收到任何参数。
async和await
async和await是ES8中引入的两个新,它们可以让我们更方便地编写异步代码。async可以用来标记一个函数为异步函数,而await可以用来等待一个Promise对象完成。
async function main() {
const result = await Promise.resolve(10);
console.log(result); // 10
}
main();
在上面的例子中,main函数被标记为异步函数,函数体中的await关键字表示等待Promise.resolve(10)完成,然后将结果作为变量result。
总结
Promise是JavaScript中非常重要的异步编程工具,它可以让我们更方便地处理异步操作。Promise的静态和实例方法提供了多种方式来创建和管理Promise对象。async和await是ES8中引入的两个新关键字,它们可以让我们更方便地编写异步代码。