Promise自定义封装,Promise的各种方法的封装。

封装Promise是一种常见的编程模式,可以将异步操作包装成一个可复用的函数,并使用Promise进行处理。下面是一个示例,展示了如何封装Promise以及一些常见的Promise方法的封装:

// 封装一个返回Promise的异步函数
function fetchData() {
    
    
  return new Promise((resolve, reject) => {
    
    
    // 异步操作,比如发送请求获取数据
    // 在异步操作完成后调用 resolve 或 reject
    if (异步操作成功) {
    
    
      resolve(返回的数据);
    } else {
    
    
      reject(错误信息);
    }
  });
}

// 使用封装的异步函数
fetchData()
  .then(data => {
    
    
    // 异步操作成功时的处理逻辑
    console.log(data);
  })
  .catch(error => {
    
    
    // 异步操作失败时的处理逻辑
    console.error(error);
  })
  .finally(() => {
    
    
    // 不论异步操作成功与否,最终都会执行的逻辑
    console.log('请求结束');
  });

// 常见的Promise方法的封装示例

// Promise.all
function fetchAllData() {
    
    
  const promise1 = fetchData();
  const promise2 = fetchData();
  return Promise.all([promise1, promise2]);
}

// Promise.race
function fetchFirstData() {
    
    
  const promise1 = fetchData();
  const promise2 = fetchData();
  return Promise.race([promise1, promise2]);
}

// Promise.resolve
function fetchResolvedData() {
    
    
  const data = getSomeData();
  return Promise.resolve(data);
}

// Promise.reject
function throwError() {
    
    
  return Promise.reject(new Error('Something went wrong'));
}

通过封装Promise,我们可以更好地组织和管理异步操作,使用.then()处理异步操作成功的情况,使用.catch()处理异步操作失败的情况,以及使用.finally()执行无论成功与否都要执行的逻辑。还可以根据具体需求封装Promise.all用于并行处理多个异步操作、Promise.race用于竞速多个异步操作的结果等。

请注意,在封装Promise过程中,根据实际业务需求进行错误处理、数据处理以及链式调用。以上只是示例,并不能直接运行,需要替换成具体的异步操作和逻辑。

猜你喜欢

转载自blog.csdn.net/qq_53509791/article/details/131765681