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

promsie 与异步调用

promsie 与异步调用

紫衣仙女 2018-12-19 15:14:46
我想通过promise异步的给obj新增一个abc的方法,当我调用test1.abc()的时候浏览器意外的报错了abc这个方法还不存在,想了一下报错是合情合理的。promise是异步执行,而最初的var obj = {}是同步执行,obj没有abc这个属性。哪怕是实例化的时候先调用obj.init()依然没用。我应该如何正确的调用test1.abc()。var ppk = new Client(/Service/);    function test() {        var obj = {};        obj.init = function() {        return new Promise(function(resolve,reject) {            resolve(5)        }).then(function(value) {            obj.abc = function() {                alert(123)            }        })    }    obj.init();    return obj;    }    var test1 = new test();    test1.abc()
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

function test() {

  var obj = {};

  obj.init = function() {

    return new Promise(function(resolve, reject) {

      return resolve(5);

    }).then(function(value) {

      obj.abc = function() {

        alert(123);

      };

    });

  };

  return obj;

}

var test1 = new test();

test1.init().then(function() {

  test1.abc();

});


查看完整回答
反对 回复 2019-01-11
  • 1 回答
  • 0 关注
  • 381 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信