2016-06-15 8 views
3

私はjQueryで約束を学んだ後、数年間はあまりプログラミングをしませんでした。今ではネイティブES6の約束を使っていくつかのことをしたいと思っています。jQuery.when()とES6のPromise.all()の違いは何ですか?

私の頭を少し曲げようと約束します。 jQueryの約束事、他の約束事の図書館、新しいネイティブJSの約束の間にはマイナーな差異や大きな違いがあります。私がこのことを働かせようとすると、私の頭はさらに疲れます。

同じことをjQuery.when()Promise.all()のようにしますが、いくつかの重要な違いがありますか?

+0

'$'と 'document.querySelectorAll'は同じですか? – Rayon

+0

@Rayon: '$'は 'document.querySelector'と同じで、' $$ 'はブラウザのdevtoolsコンソールの' document.querySelectorAll'と同じものだと思いました。しかし、jQueryの '$'は 'jQuery'オブジェクトです。 – hippietrail

+0

それは私の要点です! 'jQuery'と' JavaScript-Promise'をどのように比較できますか? – Rayon

答えて

7

Promise.all()は、引数として結果をアクセスする必要があるため、のPromisesまたはプレーンJS objectsを引数としてとります。

jQuery.when()は、普通のJS objectsまたはjQuery Deferredという複数の引数をとりますので、変数名で結果にアクセスできます。

+0

'Promise.all()'の配列は 'Promise'か普通のオブジェクトのどちらかになります。後者の場合、内部的に 'Promise.resolve()'を呼び出します。しかし、私はまだそれを考え出している... \ - : – hippietrail

+1

ああスナップ!私は言及することを忘れて:)。私は答えを編集します。 – neciu

+0

ありがとうございます。それは私がこの質問をするのを導いた[私が覚えようと/解決している問題](http://stackoverflow.com/questions/37827900)でした。 ( - : – hippietrail

関連する問題