Dart 中如何使用 then, catchError, whenComplete 处理 Future?

推荐答案

-- -------------------- ---- -------
------------ ----------- ----- -
  -------------------------------- --- -- -
    ----- ---------------- -----------
  --
  ------------- -
    ----------- ------- ------------- ---------
  --
  ------------------- -
    ------------- ---------
  --
  ---------------- -
    ------------- ------------
  ---
-

本题详细解读

1. then 方法

then 方法用于在 Future 完成时执行回调函数。如果 Future 成功完成,then 中的回调函数会被调用,并且会接收到 Future 的结果作为参数。

2. catchError 方法

catchError 方法用于捕获 Future 执行过程中抛出的异常。如果 Future 执行过程中发生错误,catchError 中的回调函数会被调用,并且会接收到错误信息作为参数。

3. whenComplete 方法

whenComplete 方法用于在 Future 完成时(无论成功还是失败)执行回调函数。这个方法通常用于执行一些清理操作或资源释放。

4. 组合使用

在实际开发中,通常会将 thencatchErrorwhenComplete 组合使用,以便在 Future 完成时执行相应的操作,并在发生错误时进行错误处理。

-- -------------------- ---- -------
-------------------------------- --- -- -
  ----- ---------------- -----------
--
------------- -
  ----------- ------- ------------- ---------
--
------------------- -
  ------------- ---------
--
---------------- -
  ------------- ------------
---

在这个例子中,Future 会在 2 秒后抛出一个异常,catchError 会捕获这个异常并打印错误信息,最后 whenComplete 会执行并打印 "Future completed"。

纠错
反馈