Ibm mobilefirst IBM Worklight-6.1如何在进行第二次适配器调用时停止第一次适配器调用

Ibm mobilefirst IBM Worklight-6.1如何在进行第二次适配器调用时停止第一次适配器调用,ibm-mobilefirst,worklight-adapters,Ibm Mobilefirst,Worklight Adapters,如果我们以2-3秒的间隔启动多个适配器调用,那么如何停止在后台运行的第一个调用 让我们说: 我正在调用A-Adapter,它在成功后会提供一些数据,但如果我调用B-Adapter,它会在毫秒内提供一些小数据,则间隔2-3秒 但第一个适配器调用仍然需要时间,并在4秒后响应,或者假设超时。现在,在B-Adapter成功之后,我们获得了A-Adapter的成功或失败 现在我的怀疑是 我们是否可以在需要时在某个时间点停止或取消订阅第一个适配器呼叫 worklight中是否有用于执行此操作的内容 我们现在

如果我们以2-3秒的间隔启动多个适配器调用,那么如何停止在后台运行的第一个调用

让我们说: 我正在调用
A-Adapter
,它在成功后会提供一些数据,但如果我调用
B-Adapter
,它会在毫秒内提供一些小数据,则间隔2-3秒

但第一个适配器调用仍然需要时间,并在4秒后响应,或者假设超时。现在,在
B-Adapter
成功之后,我们获得了
A-Adapter
的成功或失败

现在我的怀疑是

我们是否可以在需要时在某个时间点停止或取消订阅第一个适配器呼叫

worklight中是否有用于执行此操作的内容

我们现在面临的问题是主要问题,如下所示

让我们说:

我正在调用登录适配器,它给出登录成功或失败的信息,这需要一些时间,比如说5分钟。所以我所做的就是关闭应用程序并再次启动应用程序。
我再次点击登录,我得到了成功的登录,现在我在应用程序内做一些工作。现在,我得到了登录适配器的失败响应,这需要时间。

您的直接问题的答案是,不,没有API允许您在适配器过程调用自行完成之前终止正在进行的适配器过程调用。一旦调用适配器过程,它必须成功、失败或超时

当您讨论A-adapter在B-adapter之后完成的可能性时,我无法判断您是否只是打算将其作为对可能发生的情况的观察,或者您是否将其视为问题或bug-如果是后者,您应该理解,因为适配器过程调用是完全异步的,不保证适配器过程将按照调用顺序完成,也不打算提供任何此类保证

为了处理您描述的问题,我建议使用invocationContext来确保在成功或失败回调触发时,这与您期望响应的适配器过程调用相对应,如果没有,则忽略结果。有关更多信息,请参阅Worklight信息中心中描述的部分

如果适配器过程通常的“正常”响应时间很短,您还可以尝试通过将过程调用超时设置为一小段时间来缓解此问题。因此,例如,如果适配器过程通常在大约4秒钟内完成,那么可以将超时设置为15秒-假设,如果适配器过程在这段时间后没有完成,则出现问题(可能是从中检索数据的后端系统挂起或崩溃,或者类似情况)它最终还是会失败,所以让它返回一个超时失败,然后放弃。这样,您就不必担心几分钟后它最终失败时会发生什么。。。过去有人问,在哪里解释了如何更改此超时