ES6:如何使用带回调的等待

ES6: How to use await with callbacks

这是用 TypeScript 编写的 vue-router 的包装器:

abstract class RoutingHelper {

  // ...

  public static redirectToNamedRoute(targetRouteName: AnyValueOf<typeof NamedRoutes>): Promise<void> {
    return new Promise<void>((resolve: () => void): void => {
      router.push({ name: targetRouteName }, resolve);
    });
  }
}

规则 @typescript-eslint/promise-function-async 强制 returns Promise 的方法 async:

public static async redirectToNamedRoute(targetRouteName: AnyValueOf<typeof NamedRoutes>): Promise<void> {
    return new Promise<void>((resolve: () => void): void => {
      router.push({ name: targetRouteName }, resolve);
    });
  }

现在 require-await 告诉我方法必须包含 await 关键字。我如何用这种方法观察 require-await

 return await new Promise<...>(...);

会让 linter 开心。但老实说,在这里执行该规则没有任何意义。如果您想在返回之前使用承诺结果,那么等待承诺才有意义。