問題:jQuery.ajaxをBluebird.jsのPromise.resolveに渡すと、要求が失敗したときに警告がスローされます。Bluebird.resolve(jQuery.ajax)エラーでない旨の警告メッセージ[objectオブジェクト]
これは正しい動作ですか?私が見つけられなかった何らかの理由で、Bluebirdはこの警告がページに直接含まれているときには表示されません。それは、Webpackにバンドルされているときに警告を発します。
これが正しい動作であれば、BluebirdでjQuery.ajaxを使用する正しい方法は何ですか? Bluebirdがページに直接含まれていると、なぜそれが起こらないのですか?
更新:ちょっと掘り出した後、私はBluebirdの2つの異なるビルドの違いに過ぎないことがわかりました。ビルドされていないビルドでは警告が出されますが、ビルドされていないビルドでは発生しません。これには理由がありますか?
更新2:警告の原因は、.finally約束に添付されていることです。これと同じように:あなたが唯一の違いは、使用ビルドバージョンで見ることができるように https://jsfiddle.net/gf0jk80s/2/
:これは警告が発生することはありません https://jsfiddle.net/gf0jk80s/1/
:
Promise
.resolve($.getJSON('/notfound'))
.finally(() => {})
.catch(() => {});
これは警告の原因となります。誰かが自分のコードで何が間違っているかを教えてもらえるかどうか本当に感謝します。理想的には、Bluebirdの両方のビルドバージョンで警告を出さないようにしたいと思います。この例では、関数は空ですが、実際のコードでは実際には2つのハンドラで処理を行います。
Bluebirdの最新バージョンで、そのBluebird警告が追加されました。したがって、Bluebirdの異なるバージョンを含む2つのシナリオか、そのうちの1つがその警告を無効にするかのいずれかです。 – jfriend00
[Bluebirdリリースノート3.0.3](http://bluebirdjs.com/docs/changelog.html#3.0.3)は、「非エラーの約束を拒否するサードパーティのライブラリはもはや警告を出さない」と述べています。この修正を行うには、Bluebirdの新しいバージョンがありますか? – jfriend00
私はオープニングコメントでそれを見るので、両方とも3.4.6です。含まれているものは/js/browser/bluebird.min.jsにあり、バンドルされると/js/browser/bluebird.jsにあるようです。 –