このコードを実行すると、Chrome Debugging Tools の結果は次のようになります。
Init が終了した後にメタデータをロードする必要がある z
「init後」は、「終了したz」コードが起動した後にのみ表示されると予想していましたが、前に戻っているようです。どうしてこれなの?(私はJSでの約束と非同期プログラミングが初めてです)
Class1.js:
function activate()
{
dataServiceHelper.initBreezeMetaData().then(console.log('after Init'));
}
dataServiceHelper.js:
function initBreezeMetaData()
{
if (manager.metadataStore.isEmpty())
{
console.log('need to load metadata');
return manager.fetchMetadata().then(function ()
{
console.log('loaded metadata for ' + config.serviceUrl);
}).fin(function ()
{
console.log('finished z');
});
} else
{
return true;
}
}