mirror of
https://github.com/tenrok/axios.git
synced 2026-06-14 18:42:33 +03:00
Changing adapter signature to receive config and return promises
This commit is contained in:
+23
-29
@@ -2,7 +2,6 @@
|
||||
|
||||
var utils = require('./../utils');
|
||||
var transformData = require('./transformData');
|
||||
var enhanceError = require('./enhanceError');
|
||||
|
||||
/**
|
||||
* Dispatch a request to the server using whichever adapter
|
||||
@@ -36,35 +35,30 @@ module.exports = function dispatchRequest(config) {
|
||||
}
|
||||
);
|
||||
|
||||
return new Promise(function executor(resolve, reject) {
|
||||
try {
|
||||
var adapter;
|
||||
var adapter;
|
||||
|
||||
if (typeof config.adapter === 'function') {
|
||||
// For custom adapter support
|
||||
adapter = config.adapter;
|
||||
} else if (typeof XMLHttpRequest !== 'undefined') {
|
||||
// For browsers use XHR adapter
|
||||
adapter = require('../adapters/xhr');
|
||||
} else if (typeof process !== 'undefined') {
|
||||
// For node use HTTP adapter
|
||||
adapter = require('../adapters/http');
|
||||
}
|
||||
if (typeof config.adapter === 'function') {
|
||||
// For custom adapter support
|
||||
adapter = config.adapter;
|
||||
} else if (typeof XMLHttpRequest !== 'undefined') {
|
||||
// For browsers use XHR adapter
|
||||
adapter = require('../adapters/xhr');
|
||||
} else if (typeof process !== 'undefined') {
|
||||
// For node use HTTP adapter
|
||||
adapter = require('../adapters/http');
|
||||
}
|
||||
|
||||
if (typeof adapter === 'function') {
|
||||
adapter(resolve, reject, config);
|
||||
}
|
||||
} catch (e) {
|
||||
reject(enhanceError(e, config));
|
||||
}
|
||||
}).then(function onFulfilled(response) {
|
||||
// Transform response data
|
||||
response.data = transformData(
|
||||
response.data,
|
||||
response.headers,
|
||||
config.transformResponse
|
||||
);
|
||||
return Promise.resolve(config)
|
||||
// Wrap synchronous adapter errors and pass configuration
|
||||
.then(adapter)
|
||||
.then(function onFulfilled(response) {
|
||||
// Transform response data
|
||||
response.data = transformData(
|
||||
response.data,
|
||||
response.headers,
|
||||
config.transformResponse
|
||||
);
|
||||
|
||||
return response;
|
||||
});
|
||||
return response;
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user