Benutzerdefinierte Kapselung von Promise, verschiedene Methoden zur Kapselung von Promise.

Encapsulated Promise ist ein gängiges Programmiermuster, das asynchrone Vorgänge in eine wiederverwendbare Funktion einschließt und Promise für die Verarbeitung verwendet. Hier ist ein Beispiel, das zeigt, wie Promise und einige gängige Promise-Methoden gekapselt werden:

// 封装一个返回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'));
}

Durch die Kapselung von Promises können wir asynchrone Vorgänge besser organisieren und verwalten, .then()den Erfolg asynchroner Vorgänge handhaben, .catch()den Fehler asynchroner Vorgänge bewältigen und .finally()die Logik unabhängig von Erfolg oder Misserfolg ausführen. Es kann auch entsprechend den spezifischen Anforderungen Promise.allfür die parallele Verarbeitung mehrerer asynchroner Vorgänge, Promise.racefür den Wettlauf der Ergebnisse mehrerer asynchroner Vorgänge usw. gekapselt werden.

Bitte beachten Sie, dass während des Prozesses der Kapselung von Promise Fehlerbehandlung, Datenverarbeitung und Kettenaufrufe entsprechend den tatsächlichen Geschäftsanforderungen durchgeführt werden. Die oben genannten Beispiele sind nur Beispiele und können nicht direkt ausgeführt werden. Sie müssen durch bestimmte asynchrone Operationen und Logik ersetzt werden.

Supongo que te gusta

Origin blog.csdn.net/qq_53509791/article/details/131765681
Recomendado
Clasificación