如何解决Angular Typescript API调用cancel
有什么方法可以取消调用api的承诺。我的页面接受route参数,并在参数更改时调用不同的api,然后显示给ag-grid。当我正常测试时,一切正常。但是当我快速更改页面时,会出现错误。由于使用http get进行api调用是一个承诺,然后会填充变量,因此如果我移到另一页,则从上一页进行的api调用仍在进行中。如果第二页API的加载速度快于第一页API,则该变量将填充第二页API返回值。然后,它是首页的API返回,加载时间更长。它替换了该变量中第二页的API值,因此当我在第二页中时,我现在有了第一页数据。因此,无论如何,有没有取消该承诺或事件的进展。 '''
pageRef(){
this.rowData=[];
let params = new HttpParams();
params = this.setparam(params,'0',this.pagesize,'id');
this.http.get<any>(this.reconurl,this.setpacket(params)).subscribe(data =>
{this.rowData=[];this.rowData=data.Data;
this.lastpage=Math.ceil(data.Total/Number(this.pagesize));});
}
''' 更改路由参数时调用此函数。每次路由参数更改。在发生较早事件的情况下,ag-grid的rowData填充有先前的页面数据,由于返回较晚,该数据会覆盖当前页面的数据。因此,我想放置一些取消诺言的代码,以便在页面更改中存在诺言的情况下将数据返回到rowData。像那样.. '''
pageRef(){
this.rowData=[];
if(promise to this.rowData exist)
{cancel promise;}
let params = new HttpParams();
params = this.setparam(params,this.setpacket(params)).subscribe(data =>
{this.rowData=[];this.rowData=data.Data;
this.lastpage=Math.ceil(data.Total/Number(this.pagesize));});
}
'''
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。