【发布时间】:2014-04-23 05:02:52
【问题描述】:
我正在构建一个商店定位器并通过 require 加载一个自定义模块。自定义模块依赖于微软的 Directions & Search 模块。我讨厌回调地狱,并希望在加载完所有内容后预加载模块返回自定义模块上的承诺和操作。
将 bluebird 用于 Promise 规范,我尝试了几种方法 Promise.method、Promise.promisify、new Promise(function(resolve, reject){Microsoft.Maps.loadModule({callback:resolve})}) 我似乎无法让它们中的任何一个工作。
我的最新实现:
function loadSearch() {
var resolver = Promise.defer();
Microsoft.Maps.loadModule('Microsoft.Maps.Search', {
callback: resolver.resolve
});
return resolver.promise;
} /* end loadSearch */
function loadDirections() {
var resolver = Promise.defer();
Microsoft.Maps.loadModule('Microsoft.Maps.Directions', {
callback: resolver.resolve
});
return resolver.promise;
}
Promise.all([loadSearch(), loadDirections()], function() {
//do something
});
结果为@987654325@ 谁能指出最新代码中的明显错误或以承诺方式加载模块的伪代码示例。
【问题讨论】: