Future 的常用函數(shù)
Future.then()
任務(wù)執(zhí)行完成會(huì)進(jìn)入這里,能夠獲得返回的執(zhí)行結(jié)果。
Future.catchError()
有任務(wù)執(zhí)行失敗,可以在這里捕獲異常。
Future.whenComplete()
當(dāng)任務(wù)停止時(shí),最后會(huì)執(zhí)行這里。
Future.wait()
可以等待多個(gè)異步任務(wù)執(zhí)行完成后,再調(diào)用 then()。
只有有一個(gè)執(zhí)行失敗,就會(huì)進(jìn)入 catchError()。
Future.delayed()
延遲執(zhí)行一個(gè)延時(shí)任務(wù)。
Future.wait([
// 2秒后返回結(jié)果
Future.delayed(new Duration(seconds: 2), () {
return "hello";
}),
// 4秒后返回結(jié)果
Future.delayed(new Duration(seconds: 4), () {
return " world";
})
]).then((results) {
//執(zhí)行成功會(huì)走到這里
print(results[0]+results[1]);
}).catchError((e){
//執(zhí)行失敗會(huì)走到這里
print(e);
}).whenComplete((){
//無論成功或失敗都會(huì)走到這里
});;復(fù)制代碼