Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What is the point of this restriction? Why not just allow all Future-returning functions to use await?


Async methods also allow you to return values which will be returned as futures.

For example:

  return 4;
If the function is marked async, the return value should be Future<int>.

If you allow a non-async method use await, you get into this situation:

  Future<int> foo(){
    int result = await something ();
    // How to return "result" and still make compiler happy?
  }


Why not just some generic function T -> Future<T>?

It sounds like the async keyword allows for a particular implicit type conversion within the function body, but on return statements only. That's a pretty thin justification for a keyword.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: