ブルーバードがいなくてもできると思います。
まだ2019年です。
Promisesを有効にしたtypescriptでRedisの定義を入力する方法はないようです(もちろん定義ファイルを作成する場合を除きます)。 だから私は本当にこれのためのアップデートが来ることを願っています:(
@ xtianus79 util.promisifyを使用できることをご存知ですか?
確かに、コマンドごとにそれを行う必要があり、MULTI/EXECは...構文的にはエレガントではありません。
これは、FOSSライブラリで機能リクエストを要求するための非常に専門的でない方法です。 この機能にアクセスすることに夢中になっている場合は、丁寧または生産的なことをして、コミュニティに役立つと思われる変更でPRを開くか、独自のRedisクライアントを作成するか、メンテナと協力してみませんか。上記を行うには。 物事があなたが思っているようになっていないと不平を言うだけの卑劣なワンライナーの問題を開くことは、コミュニティにとって役に立たず、生産的ではなく、それはあなた自身にあまり反映されません。
@BobbieBarkerそれは面白いことを意図していて、害は意図されていませんでした!
また、私、あなたが言っていることはあなたにも当てはまります。
これで大丈夫ですか?
const { promisify } = require('util');
const redis = require('redis');
let client = new Proxy(redis.createClient(), {
get: (target, propKey, receiver) => {
let asyncKey = typeof propKey === 'string' && propKey.endsWith('Async') && propKey.slice(0, -5);
if (asyncKey) {
return promisify(Reflect.get(target, asyncKey, receiver)).bind(receiver);
}
return Reflect.get(target, propKey, receiver);
}
});
// use
client.setAsync('string key', 'val').then(res => {
console.log(res);
});
@ yi-huanに感謝します。これは優れたソリューションですが、完全に約束されたベースのソリューションではありません。
@ xtianus79 @Innomalist私はあなたが探しているものかもしれないクライアントを書きました-それはこのライブラリ(その唯一の依存関係)をラップし、promiseとtypescriptのサポートを追加します: https://npmjs.com/package/handy-redis。
@mmkalはクラスターを実行しますか?
@BobbieBarker言葉を考えてくれてありがとう!
主な問題は、このプロジェクトがまったくサポートされておらず、メンテナンスがほとんどできないことです。
#864の複製としてこれを閉じます。 私は実際にプロミスベースのクライアントでしばらく前に作業しましたが、その時点ではプロミスの使用が遅く、公開しませんでした。 後でコードを機能ブランチにプッシュします。
最も参考になるコメント
これは、FOSSライブラリで機能リクエストを要求するための非常に専門的でない方法です。 この機能にアクセスすることに夢中になっている場合は、丁寧または生産的なことをして、コミュニティに役立つと思われる変更でPRを開くか、独自のRedisクライアントを作成するか、メンテナと協力してみませんか。上記を行うには。 物事があなたが思っているようになっていないと不平を言うだけの卑劣なワンライナーの問題を開くことは、コミュニティにとって役に立たず、生産的ではなく、それはあなた自身にあまり反映されません。