現在、MongooseとBluebirdをプラグインPromiseライブラリとして使用しています。 後マングースのドキュメントは、私は次のように行われている:あなたが見ることができるようにBluebirdのPromise.map()がmongooseに接続されているときにMongooseと連携していません。Promise
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
// Some function making use of Bluebird's Promise.map()
function someFn() {
return Promise.map([
someModel.findById(someId).exec(),
someOtherModel.findById(someOtherId).exec()
], mapperFn)
.then(function() {})
.catch(function() {});
}
が、私は自分のコードに青い鳥のPromise.map()
を使用しようとしていますが、私は次のエラー得続ける:次に
TypeError: Promise.map is not a function
を私は、これは働いていたこの
var mongoose = require('mongoose');
var Promise = require('bluebird');
// Some function making use of Bluebird's Promise.map()
function someFn() {
return Promise.map([
someMode.findById(someId).exec(),
someOtherModel.findById(someOtherId).exec()
], mapperFn)
.then(function() {})
.catch(function() {});
}
のように、青い鳥を必要と新しいvar Promise
にそれを設定することで試みたが、右ではないようですこの問題にアプローチする方法。これがmongooseコード内の他の変数との矛盾を引き起こすかどうかはわかりません。
この作品を作るための提案はありますか?
編集して、自分が行っていることのより正確な図を表示してください。 –
あなたが提案した 'mongoose.Promise'を' Promise'に変更することによって、私はそれを動作させました。さて、私の質問は、これはモンゴースの約束の残りの部分にブルーバードを適用するのだろうか?これは、mongooseのデフォルトのmpromiseを上書きするでしょうか? –
mongooseのドキュメントによると、mongooseはPromises/A +準拠の約束を使用しています。彼らはブルーバードと相互運用可能でなければならず、プロミスズ/ A +標準も実装しなければならないという意味です。 2つ目の方法に従えば、あなたはどのような方法でもマングースを変更していません。 bluebirdを使いたい場合は、まだ 'mongoose.Promise = require( 'bluebird')'のステップを実行することを強くお勧めします。 – arboreal84