所以我有一个函数返回一个未来的值。当这个函数执行时,我想从未来提取字符串。我该怎么做?
Future<String> coverImage(id, space) {
String link = 'https://cdn.contentful.com/spaces/$space/assets/$id?access_token=1d4932ce2b24458e85ded26532bb81184e0d79c1a16c5713ec3ad391c2e8f5b3';
return http.get(link).then((response) => decodeToImage(decodeJson(response.body)));
}
此函数返回Future<String>
,我想在使用图像小部件
答案 0 :(得分:14)
Future someMethod() async {
String s = await someFuncThatReturnsFuture();
}
或
someMethod() {
someFuncTahtReturnsFuture().then((s) {
print(s);
});
}
无法从异步(未来)转到同步执行。
async
/ await
只是使语法看起来更像同步代码的语法糖,但正如您在第一个示例中看到的那样,someMethod
将返回Future
,如果您想要在通话网站上使用字符串s
,您必须在那里使用async
/ await
或then()
。