Promise 串联 reduce

class User {

        constructor() {

            this.getUser = this.getUser.bind(this);

            this.resolveUser = this.resolveUser.bind(this);

            this.render = this.render.bind(this);

            this.view = this.view.bind(this);

        }

        getUser(user) {

            return new Promise((resolve) => {

                setTimeout(() => {

                    resolve('厉害的' + user)

                }, 1000)

            })

        }

        resolveUser(user) {

            return this.getUser(user).then((user) => this.view(user))

        }

        render(users = []) {

            users.reduce((promise, user) => {

                    return promise.then(_ => this.resolveUser(user))

                },Promise.resolve()

            )

        }

        view(user) {

            return new Promise((resolve) => {

                console.log(user)

                resolve()

            })

        }

    }

    new User().render(['小明', '小张'])

结果


控制台打印结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容