覆盖或扩展 javascript wait 的最佳方法?

问题描述 投票:0回答:1

每次我在代码中使用

await
时,我都希望出现一个加载屏幕。总是写东西太累了:

this.loadingDivOn();
await fetch(//do something);
this.loadingDivOff();

this.loadingDivOn();
const response = lastValueFrom(await this.http.delete(`/calendar/${id}`));
this.loadingDivOff();

最好是重写await 的行为 类似于loadingDivOn()等待(某些操作)loadingDivOff()

您采取了哪些措施来减少代码重复?请注意,这必须处理

await
之后的任何类型的操作,而不仅仅是获取。

javascript async-await promise
1个回答
0
投票

创建一个接受

Promise
作为参数的函数,并将您的 Promise 传递到该函数中

async function promiseWrapper(apromise) {
  try {
    this.loadingDivOn();
    let response = await apromise;
    return response; 
  } finally {
    this.loadingDivOff();
  }
}



let fetchresponse = await promiseWrapper(fetch(...));
let delresponse = await promiseWrapper(this.http.delete(...));
© www.soinside.com 2019 - 2024. All rights reserved.