Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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-帮助我理解Dart上的代码是如何工作的_Dart_Dart Async - Fatal编程技术网

Dart-帮助我理解Dart上的代码是如何工作的

Dart-帮助我理解Dart上的代码是如何工作的,dart,dart-async,Dart,Dart Async,请帮助我理解此代码是如何工作的。为什么会这样 示例中的变量res是Stream 我想从processQueryResult方法返回Future。这段代码正常工作,我得到的结果是正确的 示例1 Future processQueryResult(mysql.Results){ 列表数据=[]; res.toList().then((列出行){ rows.forEach((mysql.Row){ 添加({name:row.name,email:row.email}); }); }); 返回新的未来(

请帮助我理解此代码是如何工作的。为什么会这样

示例中的变量
res
Stream

我想从
processQueryResult
方法返回
Future
。这段代码正常工作,我得到的结果是正确的

示例1

Future processQueryResult(mysql.Results){
列表数据=[];
res.toList().then((列出行){
rows.forEach((mysql.Row){
添加({name:row.name,email:row.email});
});
});
返回新的未来(){
返回数据;
});
}
结果中的
数据
包含所有需要的数据

但是请告诉我,为什么我移动这部分代码

res.toList().then((列出行){
rows.forEach((mysql.Row){
添加({name:row.name,email:row.email});
});
});

返回新的未来((){
res.toList().then((列出行){
rows.forEach((mysql.Row){
添加({name:row.name,email:row.email});
});
});
返回数据;
});
最后,代码看起来(示例2):

Future processQueryResult(mysql.Results){
列表数据=[];
返回新的未来(){
res.toList().then((列出行){
rows.forEach((mysql.Row){
添加({name:row.name,email:row.email});
});
});
返回数据;
});
}
结果我得到了一个空列表

对于测试,我使用此功能:

testResult(){
Results res=…//获取结果;
processQueryResult(res).然后((数据){
打印(数据);
})
}
processQueryResult的代码
示例1时,我得到正确的数据,但当
processQueryResult的代码
示例2时,我得到空列表

请告诉我,为什么会这样

如果您能提供相应文章或文档的链接,我将非常高兴。

返回新未来(){

res.toList()//非常感谢您的帮助!您是stackoverflow上最酷的人!谢谢!很高兴我能帮忙。