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(['小明', '小张'])
结果
控制台打印结果