如何更改我的简单异步Dart函数以使用新的async关键字?

时间:2015-03-03 06:00:38

标签: dart dart-async

我的Dart功能如下:

Future beAwesome() {
  if (notActuallySupported) {
    return new Future.error(new UnsupportedError('uh oh'));
  }

  return new Future.value(42);
}

// ...

beAwesome().then((answer) => print(answer));

我想使用新的async/await功能。如何更改功能?

1 个答案:

答案 0 :(得分:3)

通常,在功能签名之后和async之前添加单词{。此外,返回原始值而不是将这些值包装在期货中。此外,抛出实际的异常,而不是将错误包装在未来。

这是新版本:

Future beAwesome() async {
  if (notActuallySupported) {
    throw new UnsupportedError('uh oh');
  }

  return 42;
}

// ...

var answer = await beAwesome();
print(answer);

请注意,您仍应使用Future作为返回类型注释。