【发布时间】:2013-07-24 20:59:56
【问题描述】:
当我运行这段代码时,这是 Chrome 调试工具中的结果:
需要加载元数据 初始化后 完成z
我原以为“after init”只会在“finished z”代码触发后出现,但它似乎之前会返回。为什么是这样? (我不熟悉 JS 中的 Promise 和异步编程)
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;
}
}
【问题讨论】:
标签: javascript promise