no-async-promise-executor

禁止使用异步函数作为 Promise 执行器

Disallow using an async function as a Promise executor

bK1NI1l+1dq8b56xrZtNk7XZsADfyC/vbwatfzqtpDne0mrBFLXTWIx2129Ur1EZIkYQ/UAn9bipqLx/9FQSGOFwrCRYQYSRzAWpIefIo9Nk3YlkFhkM2uEvXNaCwvP05dY/hZZ4rvRZqsSgEO+oq49xp8q+uM7tAbmlK30tc6IgRNuneHmMILPvVRO+r0XO6s1V0DtRQF3/81ByLmdkj5yXjX+fL5SNPX5U8mnA+7WYm/aP1y5Mhzy60fLSZraNYfPn94DKWfRNhWLGGveAGnER/Dum5zorcBr2B2qs3ZeKFmfVWZN3Jmop3oJECSwd+JxLrDSd2dm4fUg9pZ5lnoVRxBJuSW6Y8lQC4iktncaJ+flnDr7w+c0XCkEOlf/mXDY9yU+7yw6tovRQG26m7Wm/zFqaz9PSZYdZpJkVJTg=

9G9fRuK2mt01G2B3HNqoJlt3QIVu2AYVsGIu8OS25sIztkxuXyyuAsGE2CN31uSp7eJdAO+E9un01cDR7Gb4v98bCCZgKgAvdJrIPBvuOXYHO8coVQYrbdEgT+QHKvT3QdBc1ynjb5O/6SZvRja9BBboqyEk5YAi3whcKVMiCOQX5TBYwBbcxevbBYGOqR23gbVzsWAA87QKuHJudRznoNSpM12HdoE9TKtGLz/G2ObQ499t4pirsVBzx/oFKg+QUZNWUANUI+bcSaUxeAt1d5ZopEMX2ippqJKDcdtPoQdoXV1ohJL9xdsfFP23uII58aNs1RvvjIeHumkICAF5+kOafuyG2APX+sAT81eU1wDBzCJy8k8L9C7OCzZBmP8o9ojnaYBktNNNS/CN34hZ/CYvllMgrERFseEZSooK5bwGgC8kj5PpN0GuPa5XrDA/mwFTFOz5ybQkHwwpViNqYgmBOoUJbvAzosyGnfbFbpacgcCNyNc1MIpeqKTgktSlFNLbPmIsRTsCOaLRFHEtj5iwbuOxdBziS1TkUZMPe1LCvwkwpr3F0lHXPqqu1rEep1MGRuf3FB2SwdBsNgyKcWPSrcclEjMorTeJjbKYmFQ=

const result = new Promise(function executor(resolve, reject) {
  readFile('foo.txt', function(err, result) {
    if (err) {
      reject(err);
    } else {
      resolve(result);
    }
  });
});

C24RGH2ZA2cLGkD3uBUOtgwxO7eG3cE40powuG2z9P5kXhspXs8r2KAgKyD/KA+B6wha8xt/IDXcB7Fa7o31BHy80bM3bprvLNOIW8MK++MzQ+U/97/uz15NFJtsZI8Q7wFcnGmiqkAs9YPDvvRd5frnsUBpBWV2kXd6VjOQEgEeStFToD7I4u3lweeT7UBhbTnUuc52JZ4M3BriByVW+jWmmoVORTfmFe0xfASY/4Fy53mMrymKrZJRwAh2s56wXfmTkq2TnIrPwR6ng439c6+RFACZLNCSi4gmYSwjD5Z2HOZMfXGDmuNRpqe5AaHOcOq+LT7uaij0eMWiEV7VZw==

  • 如果异步执行器函数抛出错误,错误将丢失,不会导致新构建的 Promise 拒绝。这可能会使调试和处理一些错误变得困难。

    Wxlz+DS8GHPwwnl3L4eP288dkFEU2l41hj5Zq+RlU699tuDjnKFAuhf3kfTWji0FMnv2T3OJhUFMYS8gxjScFtZ5LUr36osLPx8QWG6sQfzKBzOKBxIrC8uCWCZ7OI018YAvkdu5Aco5DYTBVfUrCNUn0nCwcy0O15wencarfLefusQDV+Uql9fXgUUmerKVnAfp+yKq8QSq7UWir1xAGsKs9sjhDpYgPMDJwoMHEhxlHASetz5KGskCQZZFrXSmIZa7VsbromMFNsNoDXmq6g==

  • 如果 Promise 执行器函数使用 await,这通常表明实际上不需要使用 new Promise 构造函数,或者可以缩小 new Promise 构造函数的范围。

    8D5WWemQ5VEqF/jH3s8H+VolN63GrL+pbMXcu7JtSyg87eAxmtjEcjQMd9cUK7liWWdtMjSZmf3KDTK3oEdyKSUHoVmDKs492DP7Dyn/xxM0NACCnnpoihmlR8N1xLZ15DBOo+oJBZjG//4OnjbFHbmLkW+WrgUAtAbl+kisQlINGlYfPVuoGoMgkJA+q0PIvOQaLjE/FARRB0p3eOstOxNO8C953nfB3/wm8uFVB9n/KYT+ASDwoJ/+tgu80O61yt1q6ZWd8uRrFtvu5xDcjNBI2Tm9mtYCCqvJPFCsxvsB7zth7sA7euN+Uzt0bGZB