我有以下代码flutter:
getData() {
final linksStream = getLinksStream().listen((String uri) async {
return uri;
});
}
Run Code Online (Sandbox Code Playgroud)
在方法中,我想返回来自流侦听器getData的值。uri由于该值是稍后生成的,因此我正在考虑在getData方法中响应 Future 对象。但我不知道如何将uri作为 的值传递Future。在javascript,我可以简单地创造一个promise和 的resolve值uri。我怎样才能实现它dart?
在您的代码中,“return uri”不是从 getData 返回,而是从作为监听参数的匿名函数返回。正确的代码是这样的:
Future<String> getData() {
final Completer<String> c = new Completer<String>();
final linksStream = getLinksStream().listen((String uri) {
c.complete(uri);
});
return c.future;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2584 次 |
| 最近记录: |