1
シングルトンオブジェクトが初期化の一部として非同期ステップを持つユースケースがあります。このシングルトンの他のパブリックメソッドは、初期化ステップが設定するインスタンス変数に依存します。非同期呼び出しを同期させるにはどうすればいいですか?非同期初期化を伴うシングルトン
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だ –
'VAR fooという= mySingleton.getInstance()getPrivateValue()'の結果を期待されて何? – guest271314
これは、非同期メソッドから戻ることができない方法の複雑なバージョンです。少年は本質的に単純なものを複雑にしました。 – adeneo