猿问

promsie 与异步调用

我想通过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()


紫衣仙女
浏览 382回答 1
1回答

慕侠2389804

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();});
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答