1
我有一個用例,其中一個Singleton對象具有異步步驟作爲其初始化的一部分。這個單例的其他公共方法依賴於初始化步驟設置的實例變量。我將如何去做一個異步調用同步?帶有異步初始化的單身人士
var mySingleton = (function() {
var instance;
function init() {
// Private methods and variables
function privateMethod(){
console.log("I am private");
}
var privateAsync = (function(){
// async call which returns an object
})();
return {
// Public methods and variables
publicMethod: function() {
console.log("The public can see me!");
},
publicProperty: "I am also public",
getPrivateValue: function() {
return privateAsync;
}
};
};
return {
// Get the Singleton instance if one exists
// or create one if it doesn't
getInstance: function() {
if (!instance) {
instance = init();
}
return instance;
}
};
})();
var foo = mySingleton.getInstance().getPrivateValue();
'我怎麼會去進行一個異步調用同步' - ?這是unpossible –
什麼是預期的'無功富= mySingleton.getInstance()getPrivateValue()'的結果? – guest271314
這只是一個複雜的版本,你不能從一個異步方法返回,而男孩是否讓一些固有的簡單事情複雜化了。 – adeneo