美文网首页
flutter Future

flutter Future

作者: liboxiang | 来源:发表于2019-10-08 23:26 被阅读0次
    • Future<R> then<R>(FutureOr<R> onValue(T value), {Function onError});

    then方法返回的future就是onValue或者onError返回的future,如果都没有反回,则then方法返回的future以null值完成(then返回的future方法会执行then处理方法)。如果onValue或者onError方法中发生其他错误,则then返回的future以发生的错误完成(then返回的future方法会执行error处理方法)。如果then方法没有执行,则返回的future以this的error完成(执行的是error处理方法)。

    • Future<T> catchError(Function onError, {bool test(Object error)});
      如果没执行onError方法,则返回future就以this(catchError方法的future)结果完成,如果执行了onError方法,则返回的future就是onError方法的return,如果没有return,则返回的future以null完成(执行then方法)。如果onError方法中发生其他错误,则catchError返回的future以发生的错误完成(catchError返回的future方法会执行error处理方法)

    • Future<T> whenComplete(FutureOr action());
      如果action方法中发生其他错误,则whenComplete返回的future以发生的错误完成(whenComplete返回的future方法会执行error处理方法)。如果action正常执行,则whenComplete返回的future就是this
      等价于:

       *     Future<T> whenComplete(action()) {
       *       return this.then((v) {
       *         var f2 = action();
       *         if (f2 is Future) return f2.then((_) => v);
       *         return v
       *       }, onError: (e) {
       *         var f2 = action();
       *         if (f2 is Future) return f2.then((_) { throw e; });
       *         throw e;
       *       });
       *     }
    

    相关文章

      网友评论

          本文标题:flutter Future

          本文链接:https://www.haomeiwen.com/subject/locouctx.html