我試圖使用節點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