Skip to content

BubbleBear/lazy-await

Repository files navigation

lazy promise

asdf

Install

npm install lazy-await

Usage

given

    class A {
        constructor() {
            this.self = this;
        }

        async b(val) {
            console.log(val);

            return new Promise((resolve, reject) => {
                setTimeout(() => {
                    resolve(new B);
                }, 100);
            });
        }
    }

    class B {
        constructor() {
            this.primitive = 'primitive';

            this.promiseThis = Promise.resolve(this);
        }

        async a(val) {
            console.log(val);

            return new Promise((resolve, reject) => {
                setTimeout(() => {
                    resolve(new A);
                }, 100);
            });
        }
    }
    const a = new A;

    const ra = (await (await (await (await a.self.b(1)).a(2)).self.b(3)).promiseThis).primitive;

    console.log(ra);
    // expected output: 'primitive'

now becomes

    import proxy from 'lazy-await';

    const pa = proxy(new A);

    const rpa = await pa.self.b(1).a(2).self.b(3).promiseThis.primitive;

    console.log(rpa);
    // expected output: 'primitive'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published