店舗ロケーターを構築し、require を介してカスタム モジュールをロードしています。カスタム モジュールは、Microsoft のルート案内と検索モジュールに依存しています。私はコールバック地獄が嫌いで、モジュールをプリロードして、すべてがロードされたらカスタム モジュールでプロミスとアクションを返したいと考えています。
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
});
その結果Uncaught TypeError: Cannot read property '_tryFollow' of undefined bluebird.js
、最新のコードまたはプロミス形式でモジュールをロードする疑似コードの例の明らかなエラーを誰でも指摘できますか。