javascript singleton with promise

javascript singleton with promise

本文关键字:promise with singleton javascript      更新时间:2023-09-26

我想知道我是否有这样的单例对象

var A = require("js/A");
var singleton = {
    obj : null,
    current: function() {
          if(!this.obj){
             this.fetch();
          }
          return this.obj;
    },
    fetch: function() {
          A.fetch().then(function(result){
             this.obj = result;
          });
    }
}

那么它是否等待我们return this.obj时提取回来?

简短的回答是否定的。 获取是异步发生的,因此外部函数将在执行传递到A.fetch()的回调函数之前返回。

这就是异步编程的本质,你需要熟悉promises和/或jQuery的延迟对象(这是Promises/A规范的部分实现)来处理这种情况。

这是对承诺的一个很好的介绍,这是另一个