如何取消旧的承诺?
How to cancel old promises?
我的 Ionic 3 应用程序的一个页面进行网络调用并以承诺的形式接收结果。但是有些电话比其他电话花费更多的时间。在某些情况下,请求 A 在请求 B 之前发出,响应时间可能比请求 B 长。
例如,在文本查询搜索中,如果用户为后端触发了两个具有不同参数的后续请求,他可以在响应A之前收到响应B。然后视图将显示第二个搜索结果,然后,一段时间后,第一个搜索结果,这不是预期的行为。我总是需要显示上次请求的数据。
我怎样才能取消承诺,以便我离开时显示最新数据?
我处理多个请求的竞争条件的方法是在请求上添加一个时间戳作为查询参数或 header,然后在收到响应时再次检查。如果时间戳不是已处理的最新时间戳,则将其丢弃。
我的 Ionic 3 应用程序的一个页面进行网络调用并以承诺的形式接收结果。但是有些电话比其他电话花费更多的时间。在某些情况下,请求 A 在请求 B 之前发出,响应时间可能比请求 B 长。
例如,在文本查询搜索中,如果用户为后端触发了两个具有不同参数的后续请求,他可以在响应A之前收到响应B。然后视图将显示第二个搜索结果,然后,一段时间后,第一个搜索结果,这不是预期的行为。我总是需要显示上次请求的数据。
我怎样才能取消承诺,以便我离开时显示最新数据?
我处理多个请求的竞争条件的方法是在请求上添加一个时间戳作为查询参数或 header,然后在收到响应时再次检查。如果时间戳不是已处理的最新时间戳,则将其丢弃。