Add PromiseKit dependency

- Added PromiseKit dependency
This commit is contained in:
2018-11-15 22:08:00 -04:00
parent 2689d86c18
commit be7b6b5881
541 changed files with 46282 additions and 0 deletions

View 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
}
}