目录

@typescript-eslint/no-floating-promises

要求正确处理Promise表达式。

floating-promise是指在创建Promise时,没有使用任何代码来处理它可能引发的错误,这是一种不正确的使用方式。

规则配置

// code-linter.json5
{
  "rules": {
    "@typescript-eslint/no-floating-promises": "error"
  }
}

选项

详情请参考@typescript-eslint/no-floating-promises选项。

正例

export async function bar() {
  const promise = new Promise<string>(resolve => {
    resolve('value');
    return 'finish';
  });
  await promise;

  Promise.reject('value').catch(() => {
    console.error('error');
  });

  await Promise.reject('value').finally(() => {
    console.info('finally');
  });

  await Promise.all(['1', '2', '3'].map(x => x + '1'));
}

反例

export async function bar() {
  const promise = new Promise<string>(resolve => {
    resolve('value');
    return 'finish';
  });
  promise;

  Promise.reject('value').catch();

  await Promise.reject('value').finally();

  ['1', '2', '3'].map(async x => x + '1');
}

规则集

plugin:@typescript-eslint/all

Code Linter代码检查规则的配置指导请参考Code Linter代码检查(ArkTS/TS)。