Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Dart中干净地执行几个异步I/O操作(隔离)?_Dart_Dart Async_Dart Isolates - Fatal编程技术网

如何在Dart中干净地执行几个异步I/O操作(隔离)?

如何在Dart中干净地执行几个异步I/O操作(隔离)?,dart,dart-async,dart-isolates,Dart,Dart Async,Dart Isolates,在Dart中,有一个分离的概念。我有一个应用程序(我正在Dart中进行实验),它有很多异步IO,其中每个调用(它们是数据库调用)都依赖于前一个调用。所以我最终陷入了一个嵌套的回调地狱 我想知道隔离是否可以解决嵌套回调汤,但它看起来有点冗长,我不确定它是否适合 在下一个ECMAScript Harmony中还提出了一些生成器,可以解决这些问题,但是您目前如何以干净的方式在Dart中执行大量异步IO呢?您可以使用它们并将它们链接在一起。以下future将从返回“ls”命令的结果: Future fe

在Dart中,有一个分离的概念。我有一个应用程序(我正在Dart中进行实验),它有很多异步IO,其中每个调用(它们是数据库调用)都依赖于前一个调用。所以我最终陷入了一个嵌套的回调地狱

我想知道隔离是否可以解决嵌套回调汤,但它看起来有点冗长,我不确定它是否适合

在下一个ECMAScript Harmony中还提出了一些生成器,可以解决这些问题,但是您目前如何以干净的方式在Dart中执行大量异步IO呢?

您可以使用它们并将它们链接在一起。以下future将从返回“ls”命令的结果:

Future fetch(字符串目录){
最终完成者=新完成者();
Process Process=new Process.start('ls',[dir]);
process.exitHandler=(int-exitCode){
StringInputStream stringStream=新的StringInputStream(process.stdout);
stringStream.dataHandler=(){
String content=stringStream.read();
完成者。完成(内容);
process.close();
};
};
process.errorHandler=(变量错误){
completer.completeException(错误);
返回true;
}; 
返回completer.future;
}; 
然后可以像这样将其链接在一起:

fetch('/')。然后((val)=>fetch(“/usr”)。然后((val)=>fetch(“/tmp”)

这不是最漂亮的解决方案,但这正是我现在能解决的问题