You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
706 B

  1. 'use strict';
  2. var createError = require('./createError');
  3. /**
  4. * Resolve or reject a Promise based on response status.
  5. *
  6. * @param {Function} resolve A function that resolves the promise.
  7. * @param {Function} reject A function that rejects the promise.
  8. * @param {object} response The response.
  9. */
  10. module.exports = function settle(resolve, reject, response) {
  11. var validateStatus = response.config.validateStatus;
  12. if (!response.status || !validateStatus || validateStatus(response.status)) {
  13. resolve(response);
  14. } else {
  15. reject(createError(
  16. 'Request failed with status code ' + response.status,
  17. response.config,
  18. null,
  19. response.request,
  20. response
  21. ));
  22. }
  23. };