Adrian Lang has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/164058

Change subject: Use $.when for promise handling
......................................................................

Use $.when for promise handling

Change-Id: If56e331167a3e51582c10e08083355a9f76f16ad
---
M lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
1 file changed, 15 insertions(+), 29 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/58/164058/1

diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
index 84b7eb7..6034b41 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.badgeselector.js
@@ -328,38 +328,24 @@
         */
        _fetchItems: function( itemIds ) {
                var self = this,
-                       deferred = $.Deferred(),
-                       i = 0;
+                       deferred = $.Deferred();
 
-               /**
-                * @param {string} itemId
-                * @param {wikibase.store.EntityStore} entityStore
-                * @param {jQuery.Deferred} deferred
-                */
-               function fetchItem( itemId, entityStore, deferred ) {
-                       entityStore.get( itemId )
-                       .done( function( fetchedContent ) {
-                               if( fetchedContent ) {
-                                       badges[itemId] = 
fetchedContent.getContent();
+               $.when.apply( $, $.map( itemIds, function( itemId ) {
+                       return self.options.entityStore.get( itemId );
+               } ) ).done( function( /*…*/ ) {
+                       var item;
+                       for( var i = 0; i < arguments.length; ++i ) {
+                               if( arguments[i] ) {
+                                       item = arguments[i].getContent();
+                                       badges[item.getId()] = item;
                                }
-                               if( --i === 0 ) {
-                                       deferred.resolve();
-                               }
-                       } )
-                       .fail( function() {
-                               // TODO: Have entityStore return a proper 
RepoApiError object.
-                               deferred.reject();
-                       } );
-               }
-
-               $.each( itemIds, function() {
-                       i++;
-                       fetchItem( this, self.options.entityStore, deferred );
-               } );
-
-               if( $.isEmptyObject( itemIds ) ) {
+                       }
                        deferred.resolve();
-               }
+               } )
+               .fail( function() {
+                       // TODO: Have entityStore return a proper RepoApiError 
object.
+                       deferred.reject();
+               } );
 
                return deferred.promise();
        },

-- 
To view, visit https://gerrit.wikimedia.org/r/164058
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If56e331167a3e51582c10e08083355a9f76f16ad
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <adrian.l...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to