21.Dart异步Future简单使用

import 'dart:io';

main(List args) {

  // sleep是阻塞式的耗时操作

  print("开始");

  var futurn = getNetworkData();

  print(futurn);

  print("结束");

  futurn.then((String string){

    print(string);

  }).catchError((error){

    print(error);

    print('执行错误请求${error}++++++++++++');

  }).whenComplete((){

    print("全部执行结束...");

  });

}

// 模拟一个网络请求

// Future不会阻塞主线程

Future getNetworkData() {

  return Future((){

    sleep(Duration(seconds: 5));

    print('KSJKSL1');

    //  throw Exception(

    //    "我是错误信息"

    //  );

    return "KSJKSL2";


  });

}

/**

* 1.将耗时的操作包裹到Future的回调函数中

* 2.只要有返回结果,那么就执行Future对应的then的回调

* 3.如果没有结果返回或者返回结果是错误的,需要返回一个异常

*/

你可能感兴趣的:(21.Dart异步Future简单使用)