promise的原理

118 阅读1分钟

Promise 是 JavaScript 中用于处理异步操作的一种机制,Promise 的原理涉及到状态管理、回调函数的注册和执行,以及链式调用。

  • Promise 对象有三种状态:pendingfulfilledrejected
  • Promise 的状态只能从 pending 变为 fulfilledrejected,一旦状态改变,就不会再变。
  • Promise 的构造函数接受一个执行器函数,执行器函数中可以调用 resolvereject 来改变 Promise 的状态。
  • Promise 对象有一个 then 方法,它接受两个参数:onFulfilledonRejected,分别是 Promise 状态变为 fulfilledrejected 时的回调函数。
  • then 方法返回一个新的 Promise 对象,这使得 Promise 可以链式调用。
  • Promise 对象还有一个 catch 方法,用于捕获 Promise 链中的错误。
// 创建一个 Promise 对象
const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('操作成功'); // 模拟异步操作成功
  }, 1000);
});
// 使用 .then 方法注册回调函数,并返回一个新的值
myPromise.then(result => {
  console.log(result); // 输出: 操作成功
  return '新的结果'; // 返回一个新的值
}).then(newResult => {
  console.log(newResult); // 输出: 新的结果
}).catch(error => {
    console.error(error); // 输出: Error: 发生错误
  });;