我试图使用节点8的方式的util.promisify
整个node_redisRedisClient
对象promisify类似于如何蓝鸟的promisifyAll()
的作品,并没有多少运气。仿真进bluebird.promisifyAll与util.promisify
这是我迄今为止尝试:
import * as _redis from 'redis';
import { promisify } from 'util';
const client = _redis.createClient();
const redis = Object.keys(client).reduce((c, key) => {
if (typeof c[key] === 'function') c[key] = promisify(c[key]).bind(c);
return c;
}, client);
然而,这作品:
const redis = {
get: promisify(client.get).bind(client),
set: promisify(client.set).bind(client),
hget: promisify(client.hget).bind(client),
hmset: promisify(client.hmset).bind(client),
};
任何想法?
编辑:我想用util.promisify
,而不是像蓝鸟主要的原因是因为我做的这一切打字稿,和蓝鸟的promisifyAll
似乎并没有与工作。
这应该有助于http://grizzlybit.info/2017/09/29/Node-JS-8-Util-Promisify/ – zubair1024
@ zubair1024它不,而你的博客文章与我的实际问题无关。 – aendrew
下面是使用'util.promisify()'实现'promisifyAll()':https://www.npmjs.com/package/util-promisifyall – jfriend00