Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

We don't use {#await because it has several issues. We use this utility to access promises in Svelte components, converting promises to stores:

    export type PromiseState<T> =
        | { status: 'loading'; value?: undefined; error?: undefined }
        | { status: 'resolved'; value: T; error?: undefined }
        | { status: 'rejected'; value?: undefined; error: Error };
    
    export function fromPromise<T>(promise: Promise<T>): Readable<PromiseState<T>> {
        return readable<PromiseState<T>>({ status: 'loading' }, (set) => {
            void promise
                .then((value) => set({ status: 'resolved', value }))
                .catch((error) => set({ status: 'rejected', error }));
        });
    }


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: