4
我看到一個關於Futures
的Dart屏幕錄像以及如何處理它們。它表示有兩種方式處理與同步代碼混合的一些Futures
。這是示例代碼:(根據誰做的截屏的一個)飛鏢方式處理期貨
import 'dart:async';
Map sanitizeParams(Map p) {/*.....*/}
Future sendToServer(Map p) {/*.....*/}
Future sendParams(Map params) => sendToServer(sanitizeParams(params));
以上是少首選方式,而這裏是更好的代碼:
import 'dart:async';
Map sanitizeParams(Map p) {/*.....*/}
Future sendToServer(Map p) {/*.....*/}
Future sendParams(Map params) =>
new Future.value(params)
.then(sanitizeParams)
.then(sendToServer);
爲什麼是第二一個首選?
我會說錯誤處理是使用後者的唯一原因。可讀性一如既往。 –
+1 @KaiSellgren我同意 - 這正是我在觀看截屏視頻時的反應,但我不想太過分 –