2016-05-25 11 views
0

私は約束フレームワークとしてマングースとブルーバードを使用します。私は、「保存」または私はこのエラーを取得し、「削除」を使用 毎回:グーグルながらマングースとブルーバードは約束から復帰します

Warning: a promise was created in a handler but was not returned from it 

は、私は本当に、数日それに費やしてみましたが、私はいくつかを言及するために、それほどの方法を試してみました:

  1. 約束を作成し、それをCBの保存/削除で解決します。
  2. 非常に多くの論理的な組み合わせに 'return'を入れて、それが確実に約束を返すようにします。
  3. モデル内に関数を作成し、それを "saveAsync"(私はそれを一例として を見た)と命名し、すべての約束事を行っています。
  4. 面白いですが、面白いですが、私はすべてのプロジェクトのnpmパッケージ( )を更新しようとしました。私はgithubでそれについて話したので、誰かが彼らに言及したので、 はすでに解決済みです。しかしそれはうまくいかなかった。

    さらに多くの..私は本当に必死です。
    私は間違ってはいけません。コードはうまくいきますが、毎回コンソールでこの巨大な警告が表示されるのを見るたびに、私は本当に有罪と感じます。

returnを忘れるのは非常によくある間違いは、それはエラー処理を台無しにし、問題の原因である

somePromise.then(x => { 
    someOtherPromiseReturningFunction(); 
}).then(value => { 
    // forgot a return, oh dear 
}); 

答えて

1

このエラーは、いくつかのコードのような何かをしたことを意味します。

時々問題があなたコードではありませんが、あなたが使用しているライブラリのコードを使用して - その場合、あなたはそのコードのための警告を無効にする必要があります。

  • は、独自のコードに対して個別にブルーバード必要モンゴースの場合はrequire("bluebird")を使用し、警告とともに使用してください。
  • コピーしたマングースの使用に関する警告を無効にします。

あなたはあなたのコードとスタンドアロンコピーを作成しますrequire("bluebird/js/release/promise")();とオーバーライドマングースの約束でrequire("bluebird")を使用することによりブルーバードの2つのコピーを取得することができます。

+0

今まで私のマングースはそのように要求されていました: 'import mongoose from 'mongoose'; mongoose.Promise = require( 'bluebird'); 'それは同じではありませんか?現在は動作しません。 –

+0

基本的には同じではないですか?警告をそれに向けることはできますか? (二重コメントは残念だが、編集が遅すぎる)。 –

関連する問題