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

Brent Royal-Gordon brent at architechies.com
Mon Aug 21 15:31:28 CDT 2017


> On Aug 21, 2017, at 12:41 PM, Wallacy via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Based on these same concerns, how to do this using async/await ?
> 
> func process() -> Void) {
>     loadWebResource("bigData.txt") { dataResource in
> 	  //....
>     }
>     printf("BigData Scheduled to load")
>     loadWebResource("smallData.txt") { dataResource in
> 	  //....
>     }
>     printf("SmallData Scheduled to load")
> 
> }


You would use something like the `Future` type mentioned in the proposal:

	func process() {
		let bigDataFuture = Future { await loadWebResource("bigData.txt") }
		print("BigData scheduled to load")
		
		let smallDataFuture = Future { await loadWebResource("smallData.txt") }
		print("SmallData scheduled to load")
		
		let bigDataResource = await bigDataFuture.get()
		let smallDataResource = await smallDataFuture.get()
		// or whatever; you could probably chain off the futures to handle whichever happens first first.
		...
	}

-- 
Brent Royal-Gordon
Architechies

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


More information about the swift-evolution mailing list