在初始化之前阻止呼叫的好习惯?

时间:2018-08-16 22:46:02

标签: javascript asynchronous promise

我经常创建诺言,以阻止对类实例的某些调用,直到完成一些异步初始化为止(参见示例代码)。

我还注意到运行基准测试,即使已解决诺言的.then()调用也相当昂贵。封装在已解析的.then()中,将每秒运行约5000万次调用的测试功能降低为每秒约320,000次调用。

是否有更好的做法来像Promises一样阻止呼叫?

简单示例:

class SomeClass {
    constructor() {
        this.init_promise = new Promise(resolve => {
            return fetch("some json")
                .then(res => {
                    //  Do things with data.

                    return resolve();
                });
        });
    }

    getSomething() {
        return this.init_promise
            .then(() => {
                //  Return something
            });
    }
}

0 个答案:

没有答案