【问题标题】:Is there a way that we can emit error or success manually on Future dart?有没有一种方法可以在 Future dart 上手动发出错误或成功?
【发布时间】:2020-10-28 17:26:49
【问题描述】:

类似于 SettableFuture/ListenableFuture java 的东西,我们可以控制向监听器发出什么。

我想要的是:

例如,我有一个套接字连接处于活动状态。

  1. send(request) 在某些函数中通过套接字发送消息
  2. 该请求也有它的响应,但它来自onData(d) 回调一些其他地方不在此请求功能中
  3. 我在send 之后将未来存储在一个键值数组中
  4. onData(d) 的响应之后,我将从数组中获取未来,并使其适当地发出成功或错误

【问题讨论】:

  • 您可以将Future 包裹在Completer 中,然后改用CompleterFuture
  • 是的,它有效。但是我不需要用未来包装它,我用实际的返回类型包装它。无论如何,您可以将其发布为答案。谢谢你。

标签: asynchronous dart future


【解决方案1】:

通常,您可以使异步函数返回值(成功)或引发异常(通过 throwing 从 async 函数或手动返回 Future.error)。

如果你有一些你无法控制的现有Future,你不能强迫它成功或失败。相反,您可以让调用者等待您进行控制的Future,并且可以让您的Future 依赖于外部的。

Completer 可以为您简化其中的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多