promsie 与异步调用

发布于 2022-09-05 09:25:04 字数 607 浏览 26 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

太阳公公是暖光 2022-09-12 09:25:04
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();
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文