在Dart UI中,我有一个按钮[submit]来启动一个长异步请求.[submit]处理程序返回future .接下来,按钮[submit]被按钮[cancel]替换,以允许取消整个操作.在[cancel]处理程序中,我想取消长操作.如何取消提交处理程序返回的future ?我找不到办法.
在Dart UI中,我有一个按钮[submit]来启动一个长异步请求.[submit]处理程序返回future .接下来,按钮[submit]被按钮[cancel]替换,以允许取消整个操作.在[cancel]处理程序中,我想取消长操作.如何取消提交处理程序返回的future ?我找不到办法.
据我所知,没有办法取消future .但是有一种方法可以取消Stream订阅,也许这可以帮助您.
在按钮上调用onSubmit
将返回StreamSubscription
对象.您可以显式存储该Object,然后在其上调用cancel()
来取消流订阅:
StreamSubscription subscription = someDOMElement.onSubmit.listen((data) {
// you code here
if (someCondition == true) {
subscription.cancel();
}
});
稍后,作为对某些用户操作的响应,您可能可以取消订阅: