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 开心。但老实说,在这里执行该规则没有任何意义。如果您想在返回之前使用承诺结果,那么等待承诺才有意义。
这是用 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 开心。但老实说,在这里执行该规则没有任何意义。如果您想在返回之前使用承诺结果,那么等待承诺才有意义。