Skip to content

Instantly share code, notes, and snippets.

func fetch(url: URL) -> Promise<Data> {
return Promise { seal in
URLSession.shared.dataTask(with: url!) { data, _, error in
seal.resolve(data, error)
}.resume()
}
}
fetch(url: <backend-url>).then { value in
// value
}
fetch(url: <imageurl>).recover { error -> Promise<UIImage> in
return UIImage(name: <placeholder>)
}...
firstly {
return fetch(url:url)
}.then{
...
}
firstly {
fetch(url: url)
}.ensure {
cleanup()
}.catch {
handle(error: $0)
}
func fetch(url: URL) -> Promise<Data> {
return Promise { seal in
URLSession.shared.dataTask(with: url!) { data, _, error in
seal.resolve(data, error)
}.resume()
}
}
firstly {
firstly {
fetch(url: url)
}.get { data in
//…
}.done { data in
// same data!
}
firstly {
when(fulfilled: promise1(), promise2())
}.done { result1, result2 in
//…
}
fetch(url: url).then(on: .global(QoS: .userInitiated)) {
//then closure executes on different thread
}
let waitAtLeast = after(seconds: 0.3)
firstly {
fetch(url: url)
}.then {
waitAtLeast
}.done {
//…
}