From 329d89d96881835630ec7956fc5c662beb4d7ee0 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Thu, 24 Mar 2016 20:00:45 +0000 Subject: [PATCH] mw.widgets.TitleWidget: Use the Promise for the data as well Follows-up a8eba66. Use the Promise for the data as well instead of just as a callback to evaluate a static variable. This removes any risk of race conditions or other misuse of the variable. Also simplify the array creation by using map instead of pushing in an each loop. Change-Id: Ide1489a5139ef3b26cf0de6ca6f2e675ef32c724 --- .../src/mediawiki.widgets/mw.widgets.TitleWidget.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js index 8b02443ec5..3d9771116c 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js @@ -6,14 +6,13 @@ */ ( function ( $, mw ) { - var interwikiPrefixes = [], - interwikiPrefixesPromise = new mw.Api().get( { + var interwikiPrefixesPromise = new mw.Api().get( { action: 'query', meta: 'siteinfo', siprop: 'interwikimap' - } ).done( function ( data ) { - $.each( data.query.interwikimap, function ( index, interwiki ) { - interwikiPrefixes.push( interwiki.prefix ); + } ).then( function ( data ) { + return $.map( data.query.interwikimap, function ( interwiki ) { + return interwiki.prefix; } ); } ); @@ -107,7 +106,7 @@ } }; if ( mw.Title.newFromText( query ) ) { - return interwikiPrefixesPromise.then( function () { + return interwikiPrefixesPromise.then( function ( interwikiPrefixes ) { var params, interwiki = query.substring( 0, query.indexOf( ':' ) ); if ( -- 2.20.1