UNPKG

@state-less/leap-frontend

Version:

A collection of open source fullstack services powered by React Server

25 lines (24 loc) 491 B
export function wrapPromise<T>(promise: Promise<T>): () => T { let status = 'pending'; let response: T; 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; } }; }