Utility
Loading "Utility"
Run locally for transcripts
π¨βπΌ With what you've built so far, we want you to make a reusable utility for
this use case. We want you to call it
use
and it should take a promise and
return the Value
from the promise.The only way we can do this is by tracking some values which we'll monkey-patch
onto the
promise
itself. So Kellie's added a special type for you to use to
make TypeScript happier with the hackery we plan to perform for this simplified
version of use
.π§ββοΈ Here's a good start for you:
type UsePromise<Value> = Promise<Value> & {
status: 'pending' | 'fulfilled' | 'rejected'
value: Value
reason: unknown
}
function use<Value>(promise: Promise<Value>): Value {
const usePromise = promise as UsePromise<Value>
// throw stuff, .then stuff, and return Value!
}
That should get you a good start. When you're done, you should be able to remove
a bunch of our code and replace it with a
use
call. Good luck!