如何取消旧的承诺?

时间:2017-04-24 15:49:41

标签: angular promise cancellation typescript2.1

我的Ionic 3应用程序的一个页面进行网络呼叫并以承诺的形式接收结果。但有些电话比其他电话需要更多时间。在某些情况下,在请求B之前发出的请求A可能比请求B花费更多时间来响应。

例如,在文本查询搜索中,如果用户使用后端的不同参数触发两个后续请求,则可以在响应A之前接收响应B.然后视图将显示第二个搜索结果,然后在某些后time,第一个搜索结果,这不是预期的行为。我总是需要显示上次请求的数据。

我如何取消承诺,以便我离开显示最新数据?

1 个答案:

答案 0 :(得分:1)

我处理多个请求的竞争条件的方法是在请求中添加时间戳作为查询参数或标题,然后在收到响应时再次检查。如果时间戳不是已经处理过的最新时间戳,请将其丢弃。