【发布时间】:2013-05-13 22:38:34
【问题描述】:
以下示例 (1) 读取文件并打印内容,但未将文件内容显式分配给变量(即“.then(stdout.write)”)。但是,如果我想做的不仅仅是打印内容(2),我需要将内容分配给一个变量(我认为)。
是否可以在不将文件文本分配给变量的情况下实现这一点(打印内容并做更多事情)?
在第一个示例中,是否创建了隐式变量?或者,换句话说,example1 是否通过不创建显式变量来使用更少的资源?
//Example 1:
import 'dart:io';
void main() {
new File(new Options().script)
.readAsString(encoding: Encoding.ASCII)
.then(stdout.write)
.catchError((oError) => print(oError));
print("Reading file ...\n");
}
//Example 2:
import 'dart:io';
void main() {
new File(new Options().script)
.readAsString(encoding: Encoding.ASCII)
.then((String sText) {
stdout.write(sText+"\n\n");
print ('Completed');
})
.catchError((oError) => print(oError));
print("Reading file ...\n");
}
【问题讨论】:
-
您可以通过删除 catchError 的方法级联来简化代码。通常,链接来自 Future 的调用以确保 Future 的结果和/或错误正确传播。我会更新你的代码。
-
谢谢,我再看看。