• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import {
2  noop,
3  reject as _reject
4} from '../-internal';
5
6/**
7  `Promise.reject` returns a promise rejected with the passed `reason`.
8  It is shorthand for the following:
9
10  ```javascript
11  let promise = new Promise(function(resolve, reject){
12    reject(new Error('WHOOPS'));
13  });
14
15  promise.then(function(value){
16    // Code here doesn't run because the promise is rejected!
17  }, function(reason){
18    // reason.message === 'WHOOPS'
19  });
20  ```
21
22  Instead of writing the above, your code now simply becomes the following:
23
24  ```javascript
25  let promise = Promise.reject(new Error('WHOOPS'));
26
27  promise.then(function(value){
28    // Code here doesn't run because the promise is rejected!
29  }, function(reason){
30    // reason.message === 'WHOOPS'
31  });
32  ```
33
34  @method reject
35  @static
36  @param {Any} reason value that the returned promise will be rejected with.
37  Useful for tooling.
38  @return {Promise} a promise rejected with the given `reason`.
39*/
40export default function reject(reason) {
41  /*jshint validthis:true */
42  let Constructor = this;
43  let promise = new Constructor(noop);
44  _reject(promise, reason);
45  return promise;
46}
47