[swift-evolution] [Concurrency] async/await + actors

John McCall rjmccall at apple.com
Sun Aug 20 12:20:02 CDT 2017


> On Aug 19, 2017, at 7:17 PM, Chris Lattner via swift-evolution <swift-evolution at swift.org> wrote:
>> On Aug 19, 2017, at 8:14 AM, Karim Nassar via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> 
>> This looks fantastic. Can’t wait (heh) for async/await to land, and the Actors pattern looks really compelling.
>> 
>> One thought that occurred to me reading through the section of the "async/await" proposal on whether async implies throws:
>> 
>> If ‘async' implies ‘throws' and therefore ‘await' implies ‘try’, if we want to suppress the catch block with ?/!, does that mean we do it on the ‘await’ ? 
>> 
>> guard let foo = await? getAFoo() else {  …  }
> 
> Interesting question, I’d lean towards “no, we don’t want await? and await!”.  My sense is that the try? and try! forms are only occasionally used, and await? implies heavily that the optional behavior has something to do with the async, not with the try.  I think it would be ok to have to write “try? await foo()” in the case that you’d want the thrown error to turn into an optional.  That would be nice and explicit.

try? and try! are quite common from what I've seen.

John.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170820/e470a935/attachment.html>


More information about the swift-evolution mailing list