以下示例(1)读取文件并打印内容,而不显式地将文件内容分配给变量(即“.then(stdout.write)”)。但是,如果我想要做的不仅仅是打印内容(2),我需要将内容分配给一个变量(我认为)。使用readAsString()读取文本文件并使用结果
是否有可能实现(打印内容和做更多),而不分配文件的文本到变量?
在第一个示例中,是否创建了一个隐式变量?或者换一种说法,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的结果和/或错误正确传播。我会更新你的代码。 – 2013-05-14 05:33:46
谢谢,我会再看看它。 – 2013-05-14 15:31:44