2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-17 19:21:29 +03:00

Adding support for all and spread

This commit is contained in:
Matt Zabriskie
2014-09-05 15:48:58 -06:00
parent 38ad8fef20
commit c43f2b9710
12 changed files with 186 additions and 68 deletions
+5
View File
@@ -6,6 +6,7 @@ var parseHeaders = require('./parseHeaders');
var transformData = require('./transformData');
var urlIsSameOrigin = require('./urlIsSameOrigin');
var utils = require('./utils');
var spread = require('./spread');
var axios = module.exports = function axios(config) {
config = utils.merge({
@@ -128,6 +129,10 @@ var axios = module.exports = function axios(config) {
// Expose defaults
axios.defaults = defaults;
// Expose all/spread
axios.all = Promise.all;
axios.spread = spread;
// Provide aliases for supported request methods
createShortMethods('delete', 'get', 'head');
createShortMethodsWithData('post', 'put', 'patch');
+25
View File
@@ -0,0 +1,25 @@
/**
* Syntactic sugar for invoking a function and expanding an array for arguments.
*
* Common use case would be to use `Function.prototype.apply`.
*
* ```js
* function f(x, y, z) {}
* var args = [1, 2, 3];
* f.apply(null, args);
* ```
*
* With `spread` this example can be re-written.
*
* ```js
* spread(function(x, y, z) {})([1, 2, 3]);
* ```
*
* @param {Function} callback
* @returns {Function}
*/
module.exports = function spread(callback) {
return function (arr) {
callback.apply(null, arr);
};
};