我如何中止离子承诺
How do I abort an Ionic promise
我正在制作一个项目列表,每次用户输入一些值时,它都会调用 listVendas
函数,该函数会立即在 API 中搜索,但这会导致一堆请求,并且有些请求可以先于其他请求完成,所以我的问题是。
如何中止 Promise 以便创建新 Promise?
listVendas(event?: any) {
let codigovenda;
if (event) {
codigovenda = event.value;
}
if (typeof this.promise != 'undefined') {
// HOW DO I ABORT THE PREVIOUS PROMISE
}
this.promise = this.vendaProvider.getAll(codigovenda);
this.promise.then(data => {
this.vendas = data;
})
}
在 Ionic 中,您可以使用 rxjs switchMap operator and debounceTime 运算符非常轻松地完成此操作。
我搜索了很多,你不能中止承诺,所以我的解决方案是不要在用户每次键入内容时都发出请求,而不是创建一个按钮来发出请求
<form [formGroup]="searchForm" (ngSubmit)="listVendas()">
<ion-card class="search">
<ion-icon class="icon-search" name="search"></ion-icon>
<ion-input type="number" pattern="[0-9]*" value="" formControlName="codigovenda"></ion-input>
<ion-icon class="icon-camera" name="camera" (click)="scanBacode()"></ion-icon>
</ion-card>
<ion-row class="row-submit" justify-content-center>
<button ion-button full icon-start type="submit">
Buscar
</button>
</ion-row>
</form>
我正在制作一个项目列表,每次用户输入一些值时,它都会调用 listVendas
函数,该函数会立即在 API 中搜索,但这会导致一堆请求,并且有些请求可以先于其他请求完成,所以我的问题是。
如何中止 Promise 以便创建新 Promise?
listVendas(event?: any) {
let codigovenda;
if (event) {
codigovenda = event.value;
}
if (typeof this.promise != 'undefined') {
// HOW DO I ABORT THE PREVIOUS PROMISE
}
this.promise = this.vendaProvider.getAll(codigovenda);
this.promise.then(data => {
this.vendas = data;
})
}
在 Ionic 中,您可以使用 rxjs switchMap operator and debounceTime 运算符非常轻松地完成此操作。
我搜索了很多,你不能中止承诺,所以我的解决方案是不要在用户每次键入内容时都发出请求,而不是创建一个按钮来发出请求
<form [formGroup]="searchForm" (ngSubmit)="listVendas()">
<ion-card class="search">
<ion-icon class="icon-search" name="search"></ion-icon>
<ion-input type="number" pattern="[0-9]*" value="" formControlName="codigovenda"></ion-input>
<ion-icon class="icon-camera" name="camera" (click)="scanBacode()"></ion-icon>
</ion-card>
<ion-row class="row-submit" justify-content-center>
<button ion-button full icon-start type="submit">
Buscar
</button>
</ion-row>
</form>