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我同意 - 这正是我在观看截屏视频时的反应,但我不想太过分 –