react-native-ios-utilities
Version:
Utilities for react-native + iOS
38 lines • 1.18 kB
JavaScript
/** wrapper func for setState that returns a promise */
// eslint-disable-next-line consistent-this
export function setStateAsync(that, newState) {
return new Promise((resolve) => {
that.setState(newState, () => {
resolve();
});
});
}
;
/** wrapper for timeout that returns a promise */
export function timeout(ms) {
return new Promise((resolve) => {
const timeoutID = setTimeout(() => {
clearTimeout(timeoutID);
resolve();
}, ms);
});
}
;
/** Wraps a promise that will reject if not not resolved in <ms> milliseconds */
export function promiseWithTimeout(ms, promise) {
// Create a promise that rejects in <ms> milliseconds
const timeoutPromise = new Promise((_, reject) => {
const timeoutID = setTimeout(() => {
clearTimeout(timeoutID);
reject(`Promise timed out in ${ms} ms.`);
}, ms);
});
// Returns a race between our timeout and the passed in promise
return Promise.race([promise, timeoutPromise]);
}
;
export function pad(num, places = 2) {
return String(num).padStart(places, '0');
}
;
//# sourceMappingURL=Helpers.js.map