HarmonyOS linter检测:async函数中的try/catch的return问题?

以下代码可以不写return,但是linter规则必须要加return,甚至在catch之外加个空的return都行,该如何修改这种linter规则。

import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'
import { bundleManager } from '@kit.AbilityKit';


class PermissionManager {
  private atManager!: abilityAccessCtrl.AtManager
  private tokenID: number = 0;

  constructor() {
    this.atManager = abilityAccessCtrl.createAtManager();
    this.getToken();
  }

  async getToken() {
    if (this.tokenID) return this.tokenID;
    const bundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
    this.tokenID = bundleInfo.appInfo.accessTokenId;
    return this.tokenID;
  }

  async checkPermission(permission: Permissions) {
    try {
      const grantStatus: abilityAccessCtrl.GrantStatus = await this.atManager.checkAccessToken(this.tokenID, permission);
      console.info('[log] checkPermission Successfully.', JSON.stringify(grantStatus));
      return grantStatus;
    } catch(e) {
      console.error(`[log] checkPermission error: ${JSON.stringify(e)}`);
    }
  }
}

export const permissionManager = new PermissionManager();
阅读 558
1 个回答

可以在catch代码块里加一个return或在try catch外加一个return解决报错问题。

async checkPermission(permission: Permissions) {
  try {
    const grantStatus: abilityAccessCtrl.GrantStatus = await this.atManager.checkAccessToken(this.tokenID, permission);
    console.info('[log] checkPermission Successfully.', JSON.stringify(grantStatus));
    return grantStatus;
  } catch(e) {
    console.error(`[log] checkPermission error: ${JSON.stringify(e)}`);
  }
  return ;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进