Add PromiseKit dependency
- Added PromiseKit dependency
This commit is contained in:
35
Carthage/Checkouts/PromiseKit/Extensions/StoreKit/Sources/SKReceiptRefreshRequest+Promise.swift
vendored
Normal file
35
Carthage/Checkouts/PromiseKit/Extensions/StoreKit/Sources/SKReceiptRefreshRequest+Promise.swift
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
#if !PMKCocoaPods
|
||||
import PromiseKit
|
||||
#endif
|
||||
import StoreKit
|
||||
|
||||
extension SKReceiptRefreshRequest {
|
||||
public func promise() -> Promise<SKReceiptRefreshRequest> {
|
||||
return ReceiptRefreshObserver(request: self).promise
|
||||
}
|
||||
}
|
||||
|
||||
private class ReceiptRefreshObserver: NSObject, SKRequestDelegate {
|
||||
let (promise, seal) = Promise<SKReceiptRefreshRequest>.pending()
|
||||
let request: SKReceiptRefreshRequest
|
||||
var retainCycle: ReceiptRefreshObserver?
|
||||
|
||||
init(request: SKReceiptRefreshRequest) {
|
||||
self.request = request
|
||||
super.init()
|
||||
request.delegate = self
|
||||
request.start()
|
||||
retainCycle = self
|
||||
}
|
||||
|
||||
|
||||
func requestDidFinish(_: SKRequest) {
|
||||
seal.fulfill(request)
|
||||
retainCycle = nil
|
||||
}
|
||||
|
||||
func request(_: SKRequest, didFailWithError error: Error) {
|
||||
seal.reject(error)
|
||||
retainCycle = nil
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user