【发布时间】:2021-06-02 22:41:18
【问题描述】:
我想通过promisify使用redis客户端:
import type { RedisClient } from "redis";
import * as util from "util";
class MyClass {
private redisClient: RedisClient;
constructor(client: RedisClient) {
this.redisClient = client;
}
getMyData = (): SomeType[] => {
const getAsync: Promise<string | undefined> = util.promisify(this.redisClient.get).bind(this.redisClient);
// ...
};
}
但是我在使用 eslint 时遇到了两个问题:
-
ESLint: Avoid referencing unbound methods which may cause unintentional scoping of 'this'.(@typescript-eslint/unbound-method)this.redisClient.get片段
和
-
ESLint: Unsafe assignment of an any value.(@typescript-eslint/no-unsafe-assignment)getAsync
我如何以一种可以识别类型并正确确定this 范围的方式使用promisify?
【问题讨论】:
-
你试过
util.promisify(this.redisClient.get.bind(this.redisClient)) -
解决了第一个问题,谢谢!你知道我如何解决第二个问题吗?
-
试试这个:
const getAsync = util.promisify<string|undefined>(this.redisClient.get.bind(this.redisClient)) -
有效!您可以将您的 cmets 转换为 answer 以便我接受吗?
标签: typescript eslint node-redis typescript-eslint node-promisify