mirror of
https://github.com/samsonjs/samhuri.net-ios.git
synced 2026-04-01 10:35:49 +00:00
30 lines
946 B
Objective-C
30 lines
946 B
Objective-C
#import "PromiseKit/Promise+Pause.h"
|
|
|
|
#define Queue dispatch_get_main_queue()
|
|
|
|
|
|
@implementation PMKPromise (Pause)
|
|
|
|
- (PMKPromise *(^)(NSTimeInterval))pause {
|
|
return ^(NSTimeInterval delay) {
|
|
return self.then(^(id value){
|
|
return [self.class new:^(PMKPromiseFulfiller fulfiller, PMKPromiseRejecter rejecter) {
|
|
dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC));
|
|
dispatch_after(time, Queue, ^{
|
|
fulfiller(PMKManifold(value ?: @(delay), @(delay)));
|
|
});
|
|
}];
|
|
});
|
|
};
|
|
}
|
|
|
|
+ (PMKPromise *)pause:(NSTimeInterval)delay {
|
|
return [self new:^(PMKPromiseFulfiller fulfiller, PMKPromiseRejecter rejecter) {
|
|
dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC));
|
|
dispatch_after(time, Queue, ^{
|
|
fulfiller(@(delay));
|
|
});
|
|
}];
|
|
}
|
|
|
|
@end
|