处理 Promise 执行器函数 ESLint 错误

Posted

技术标签:

【中文标题】处理 Promise 执行器函数 ESLint 错误【英文标题】:Dealing with Promise executor functions ESLint error 【发布时间】:2021-10-09 21:25:51 【问题描述】:

以下代码块引发两个警告

    ESLint:Promise 执行器函数不应该是异步的。 (no-async-promise-executor) ESLint:在预期返回 void 的函数参数中返回 Promise。 (@typescript-eslint/no-misused-promises)

重写它以消除错误消息的最佳方法是什么?

async signIn(email: string, password: string, redirectTo: string): Promise<unknown> 
  return new Promise(async (resolve, reject) => 
    const  error, data  = await this.supabaseClient.auth.signIn(
       email: email, password: password ,
       redirectTo: redirectTo 
    );
    if (error) 
      reject(error);
     else 
      resolve(data);
    
  );

【问题讨论】:

【参考方案1】:
async signIn(email: string, password: string, redirectTo: string) 
    const  error, data  = await this.supabaseClient.auth.signIn(
       email: email, password: password ,
       redirectTo: redirectTo 
    );
    if (error) 
      throw new Error(error);
    

    return data
  );

完全不需要使用promise,可以抛出错误。

【讨论】:

以上是关于处理 Promise 执行器函数 ESLint 错误的主要内容,如果未能解决你的问题,请参考以下文章

ESLint 可以帮助你防止 Unhandled-Promise-Rejections 吗?

Vue-Router:Uncaught (in promise) 报错处理

eslint for...in 报错处理

Vue项目中ESlint语法报错问题的处理方法

关于defer.promise.then 异步的一个疑问

可以让 Prettier 允许在新行上链接函数吗?