Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9013

【Node.js ✗ Redis を async/awaitで行う】

$
0
0

node-redisとioredisあたりがよく使われているみたい。

redisには型ごとに様々なコマンドがある。
https://www.tutorialspoint.com/redis/index.htm

そのなかでも、結果によって、0 or 1 を返してくれる便利なものもある。

この0 or 1の結果を利用したいときにioredisを使ったほうがasync/awaitを使えるのでネストが深くなったりしなくて済む。

以下では、setnxコマンド(keyがすでに存在していれば→0, なければセットして→1を返す)を例に上げて比べてみる。

node-redisで返り値を取得する方法

constredis=require('redis');constclient=redis.createClient();client.setnx(['name',name],(err,result)=>{console.log(result)// result = 0 or 1}

ioredisで返り値を取得する方法

constioredis=require('ioredis')constioclient=ioredis.createClient()..省略async()..try{constresult=awaitioclient.setnx(['name',name])console.log(result)// result = 0 or 1}catch(err){console.log(err)}..省略

ioredisだとPromiseインスタンスでredisコマンドの結果を返してくれるのでasync/awaitでネストが深くなるのを阻止できる。

試しにawaitを外してみると、Promise { <pending> }が返ってくる。


Viewing all articles
Browse latest Browse all 9013

Trending Articles