@state-less/leap-frontend
Version:
A collection of open source fullstack services powered by React Server
22 lines (21 loc) • 496 B
JavaScript
export function wrapPromise(promise) {
let status = 'pending';
let response;
const suspender = promise.then((res) => {
status = 'success';
response = res;
}, (err) => {
status = 'error';
response = err;
});
return () => {
switch (status) {
case 'pending':
throw suspender;
case 'error':
throw response;
default:
return response;
}
};
}