我想从异步函数返回一个String,但我得到一个Future我做错了什么;
例
main() {
String s;
s = dummy("http://www.google.com");
}
String dummy(String s) {
String response;
response = readURL(s);
return response;
}
Future<String> readURL(String requestString) async {
String response = await http.read(requestString);
print(response);
return response;
}
Run Code Online (Sandbox Code Playgroud)
错误:
type'_Future'不是'response'类型'String'的子类型.
Pac*_*ane 10
注释的函数async将始终返回Future.
所以当你打电话时,readUrl(s)你可以得到await结果.
要使用await,调用者(这里是您的主要功能)必须标记为async.所以最终结果可能如下所示:
main() async {
String s = await dummy("http://www.google.com");
}
Future<String> dummy(String s) async {
String response = await readURL(s);
return (response);
}
Future<String> readURL(String requestString) async {
String response = await http.read(requestString);
print(response);
return(response);
}
Run Code Online (Sandbox Code Playgroud)
需要注意的是:如果await在函数中使用它,它现在被视为返回a的函数Future.所以你转换成的每个函数async现在都会返回一个Future.
| 归档时间: |
|
| 查看次数: |
3673 次 |
| 最近记录: |