弗拉特的未来字符串

时间:2017-08-16 05:32:37

标签: android flutter

所以我有一个函数返回一个未来的值。当这个函数执行时,我想从未来提取字符串。我该怎么做?

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>,我想在使用图像小部件

时提取到字符串

1 个答案:

答案 0 :(得分:14)

Future someMethod() async {
  String s = await someFuncThatReturnsFuture();
}

someMethod() {
  someFuncTahtReturnsFuture().then((s) {
    print(s);
  });
}

无法从异步(未来)转到同步执行。 async / await只是使语法看起来更像同步代码的语法糖,但正如您在第一个示例中看到的那样,someMethod将返回Future,如果您想要在通话网站上使用字符串s,您必须在那里使用async / awaitthen()