前端的同學(xué)對(duì) Promise 肯定都很熟悉,而 Future 便是 dart 中 Promise ,但方法名稱和使用方式還是有些許的差異的。
成都創(chuàng)新互聯(lián)公司從2013年成立,先為古交等服務(wù)建站,古交等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為古交企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
下面我們嘗試,利用 Future 封裝出js中我們熟悉的 Promise 。
使用示例
Promise.all , Promise.race , Promise.resolve , Promise.reject
Promise.allSettled 方法接受一組 Promise 實(shí)例作為參數(shù),包裝成一個(gè)新的 Promise 實(shí)例。只有等到所有這些參數(shù)實(shí)例都返回結(jié)果,不管是 fulfilled 還是 rejected ,包裝實(shí)例才會(huì)結(jié)束。該方法由 ES2020 引入
Promise.any() 方法接受一組 Promise 實(shí)例作為參數(shù),包裝成一個(gè)新的 Promise 實(shí)例。只要參數(shù)實(shí)例有一個(gè)變成 fulfilled 狀態(tài),包裝實(shí)例就會(huì)變成 fulfilled 狀態(tài);如果所有參數(shù)實(shí)例都變成 rejected 狀態(tài),包裝實(shí)例就會(huì)變成 rejected 狀態(tài)。該方法目前是一個(gè)第三階段的 提案 。
Promise.any() 跟 Promise.race() 方法很像,只有一點(diǎn)不同,就是不會(huì)因?yàn)槟硞€(gè) Promise 變成 rejected 狀態(tài)而結(jié)束。
順便把 延遲函數(shù) 也封裝一下,畢竟毫秒延遲的使用頻率是最高的。
將枚舉類型更改為常規(guī)類或?qū)⒊R?guī)類更改為枚舉類型時(shí),熱重載(r)不起作用。 需要hot restart(cmd + shift + r)
修改泛型類型聲明后,熱重裝將無法工作。 例如,以下操作將無效:
Widget 快速替換 、 包裝 、 移動(dòng) 、 刪除 、 抽取成變量 、 抽取成方法
焦點(diǎn)放到相應(yīng)的widget上, 然后 cmd + . 如果提示沒有相關(guān)操作,多試幾次
一個(gè)FormField包含TextField,它將TextField小部件包裝在FormField中。
表單(From)使一次進(jìn)行保存、重置或驗(yàn)證多個(gè)字段變得更容易。要在沒有表單(From)的情況下使用,請(qǐng)將GlobalKey傳遞給構(gòu)造函數(shù),并使用GlobalKey.currentState保存或重置表單字段。
指定控制器時(shí),initialValue必須為null(默認(rèn)值)。如果controller為null,那么TextEditingController將被自動(dòng)構(gòu)造,其文本將初始化為initalValue或空字符串。如果這個(gè)FormField是滾動(dòng)容器的一部分,該容器懶加載它的子對(duì)象,比如ListView或CustomScrollView,那么應(yīng)該指定一個(gè)控制器。控制器的生命周期應(yīng)該由滾動(dòng)容器的有狀態(tài)小部件祖先來管理。