每次我在代码中使用
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
之后的任何类型的操作,而不仅仅是获取。
创建一个接受
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(...));