Seth Ladd
Seth Ladd

Reputation: 120489

How do I change my simple asynchronous Dart function to use the new async keyword?

I have a Dart function that looks like:

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

  return new Future.value(42);
}

// ...

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

I want to use the new async/await functionality. How do I change my function?

Upvotes: 0

Views: 78

Answers (1)

Seth Ladd
Seth Ladd

Reputation: 120489

In general, add the word async after your function's signature and before the {. Also, return raw values instead of wrapping those values in futures. Also, throw actual exceptions instead of wrapping the errors with a future.

Here's the new version:

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

  return 42;
}

// ...

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

Note that you should still use Future as the return-type annotation.

Upvotes: 3

Related Questions