From: Timo Tijhof Date: Thu, 24 Mar 2016 20:00:45 +0000 (+0000) Subject: mw.widgets.TitleWidget: Use the Promise for the data as well X-Git-Tag: 1.31.0-rc.0~7501^2 X-Git-Url: https://git.cyclocoop.org/%242?a=commitdiff_plain;h=329d89d96881835630ec7956fc5c662beb4d7ee0;p=lhc%2Fweb%2Fwiklou.git 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 --- 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 (