为了账号安全,请及时绑定邮箱和手机立即绑定

js链式调用问题

js链式调用问题

三国纷争 2019-03-13 14:15:13
写一个链式调用,调用方式如下:new Man('lan').sleep(3).eat('apple').sleep(3).eat('banana');输出:hello, lan -->(停顿3s) --> lan eat apple -->(停顿3s) --> lan eat banana我的代码如下:class Man {    constructor(name) {        this.name = name;        this.sayName();    }    sayName() {        console.log('hi '+this.name);    }    sleep(time) {        var self = this;        new Promise((res, rej)=> {            setTimeout(()=> {                res('');            }, time*1000)        }).then(val=> {            return self;        });    }    eat(food) {        console.log(this.name + '吃' + food);        return this;    }}new Man('兰兰').sleep(3).eat('饼干').sleep(3).eat('苹果');问题出在sleep这个节点上,尽管用了promise还是不能及时返回this指针,导致sleep(3).eat('...')时报错说没有eat函数。请问应该怎么解决呢?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 523 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号