* @return {boolean} return.done.isCategory Whether the category exists.
*/
isCategory: function ( title, ok, err ) {
- var d = $.Deferred();
+ var d = $.Deferred(),
+ apiPromise;
+
// Backwards compatibility (< MW 1.20)
- d.done( ok );
- d.fail( err );
+ d.done( ok ).fail( err );
- this.get( {
+ apiPromise = this.get( {
prop: 'categoryinfo',
titles: title.toString()
} )
} );
}
d.resolve( exists );
- })
+ } )
.fail( d.reject );
- return d.promise();
+ return d.promise( { abort: apiPromise.abort } );
},
/**
* @return {String[]} return.done.categories Matched categories
*/
getCategoriesByPrefix: function ( prefix, ok, err ) {
- var d = $.Deferred();
+ var d = $.Deferred(),
+ apiPromise;
+
// Backwards compatibility (< MW 1.20)
- d.done( ok );
- d.fail( err );
+ d.done( ok ).fail( err );
// Fetch with allpages to only get categories that have a corresponding description page.
- this.get( {
+ apiPromise = this.get( {
list: 'allpages',
apprefix: prefix,
- apnamespace: mw.config.get('wgNamespaceIds').category
+ apnamespace: mw.config.get( 'wgNamespaceIds' ).category
} )
.done( function ( data ) {
var texts = [];
} );
}
d.resolve( texts );
- })
+ } )
.fail( d.reject );
- return d.promise();
+ return d.promise( { abort: apiPromise.abort } );
},
* if title was not found.
*/
getCategories: function ( title, ok, err, async ) {
- var d = $.Deferred();
+ var d = $.Deferred(),
+ apiPromise;
+
// Backwards compatibility (< MW 1.20)
- d.done( ok );
- d.fail( err );
+ d.done( ok ).fail( err );
- this.get( {
+ apiPromise = this.get( {
prop: 'categories',
titles: title.toString()
}, {
} );
}
d.resolve( ret );
- })
+ } )
.fail( d.reject );
- return d.promise();
+ return d.promise( { abort: apiPromise.abort } );
}
} );