import 'dart:io';
void main(List<String> args) {
print('main start');
Future future = getdate();
print(future);
future.then((value) {
print(value);
});
print('main end');
}
Future<String> getdate() {
return Future(() {
sleep(Duration(seconds: 3));
return 'hello word';
});
}
import 'dart:io';
void main(List<String> args) {
print('main start');
Future(() {
//异步的代码块
sleep(Duration(seconds: 3));
return 'hello word';
//异步的代码块
}).then((value){
//获取处理结果的代码块
print(value);
});
print('main end');
}
import 'dart:io';
void main(List<String> args) {
print('main start');
Future(() {
//异步的代码
sleep(Duration(seconds: 2));
throw Exception('我是错误信息');
}).then((value) {
//结果处理
print(value);
}).catchError((err) {
print(err);
}).whenComplete(() {
//必执行代码
print('代码执行完成');
});
print('main end');
}
import 'dart:io';
void main(List<String> args) {
print('main start');
Future(() {
//异步的代码
sleep(Duration(seconds: 2));
return '第一次结果';
}).then((value) {
print(value);
sleep(Duration(seconds: 2));
return '第二次结果';
}).then((value) {
print(value);
sleep(Duration(seconds: 2));
return '第三次结果';
}).then((value) {
print(value);
});
print('main end');
}
import 'dart:io';
void main(List<String> args) {
print('main start');
List l = [1, 2, 3, 4];
Future.value(l).then((value) {
print(value);
});
//2秒后执行
Future.delayed(Duration(seconds: 2)).then((value) {
return 'hello';
}).then((value) => print(value));
print('main end');
}
import 'dart:io';
void main(List<String> args) {
print('main start');
getdata();
print('main end');
}
void getdata() async {
var v1 = await getND('arg');
print(v1);
var v2 = await getND(v1);
print(v2);
var v3 = await getND(v2);
print(v3);
}
Future getND(String arg) {
return Future(() {
sleep(Duration(seconds: 3));
return 'hello world' + arg;
});
}
注意在main中好像是不能使用async和await语法糖
import 'dart:async';
void main(List<String> args) {
print('main start');
gt('1', 4);
gt('2', 2);
gt('3', 3);
print('main end');
}
void gt(String s, int i) async {
var v = await performAsyncOperation(s, i);
print(v);
}
Future performAsyncOperation(String s, int i) async {
await Future.delayed(Duration(seconds: i));
return '第$s次结果';
}