1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  | /** 
 |   * @fileoverview disallow using an async function as a Promise executor 
 |   * @author Teddy Katz 
 |   */ 
 |  "use strict"; 
 |    
 |  //------------------------------------------------------------------------------ 
 |  // Rule Definition 
 |  //------------------------------------------------------------------------------ 
 |    
 |  module.exports = { 
 |      meta: { 
 |          type: "problem", 
 |    
 |          docs: { 
 |              description: "disallow using an async function as a Promise executor", 
 |              category: "Possible Errors", 
 |              recommended: true, 
 |              url: "https://eslint.org/docs/rules/no-async-promise-executor" 
 |          }, 
 |    
 |          fixable: null, 
 |          schema: [], 
 |          messages: { 
 |              async: "Promise executor functions should not be async." 
 |          } 
 |      }, 
 |    
 |      create(context) { 
 |          return { 
 |              "NewExpression[callee.name='Promise'][arguments.0.async=true]"(node) { 
 |                  context.report({ 
 |                      node: context.getSourceCode().getFirstToken(node.arguments[0], token => token.value === "async"), 
 |                      messageId: "async" 
 |                  }); 
 |              } 
 |          }; 
 |      } 
 |  }; 
 |  
  |