void main(){
test1();
print('5555');
}
void test1(){
print('1111');
Future((){
print('2222');
});
Future((){
print('3333');
});
print('4444');
}
输出结果
flutter: 1111
flutter: 4444
flutter: 5555
flutter: 2222
flutter: 3333
分析:Flutter属于单线程,先执行完主线程,再执行Future里面的事件
void main(){
test1();
print('5555');
}
void test1(){
print('1111');
Future((){
print('2222');
}).then((value){
print('6666');
});
Future((){
print('3333');
}).then((value){
print('7777');
});
Future((){
print('8888');
}).then((value){
print('9999');
});
print('4444');
}
输出结果
flutter: 1111
flutter: 4444
flutter: 5555
flutter: 2222
flutter: 6666
flutter: 3333
flutter: 7777
flutter: 8888
flutter: 9999
执行一组异步操作
//执行一组异步操作
void testFuture3() {
Future.wait([
Future((){
return'任务1';
}),
Future((){
return'任务2';
})
]).then((value){
print(value[0]);
});
}
异步任务之前存在依赖关系
void testFuture2() {
//异步任务之前存在依赖关系
Future((){
print('任务1结束');
}).then((value){
return '任务3';
}).then((value){
return '任务4';
}).then((value){
return '任务2';
});
}
微任务队列优先级高于Future事件队列
void testFuture4() {
print('任务开始');
Future((){
print('任务1');
}).then((value) => print(value));
Future((){
print('任务2');
});
//微任务队列优先级高于Future事件队列
scheduleMicrotask((){
print('任务3');
});
print('任务结束');
}
.then相当于微任务,优先级差不多,所以在执行完Future必定接着执行.then
网友评论