์ด์ ํ๋์ ์์ด๋ ํ ์ ์์ ๊ฒ ๊ฐ์์.
์์ง 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 ๋น์ ์ด ์ฐพ๊ณ ์๋ ํด๋ผ์ด์ธํธ๋ฅผ ์์ฑํ์ต๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์ ์ผํ ์ข ์์ฑ)๋ฅผ ๋ํํ๊ณ ์ฝ์ ๋ฐ ์ ํ ์คํฌ๋ฆฝํธ ์ง์์ ์ถ๊ฐํฉ๋๋ค: https://npmjs.com/package/handy-redis.
@mmkal ํด๋ฌ์คํฐ๋ฅผ ์ํํฉ๋๊น?
@BobbieBarker ๊ทํ์ ๊ณ ๋ ค ์ฌํญ์ ๋ํด ๋๋จํ ๊ฐ์ฌํฉ๋๋ค!
์ฃผ์ ๋ฌธ์ ๋ ์ค์ ๋ก ์ด ํ๋ก์ ํธ๊ฐ ์ด๋ค ์์ผ๋ก๋ ์ง์๋์ง ์๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๊ฑฐ์ ํ์ฉ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
#864์ ๋ณต์ ๋ณธ์ผ๋ก ์ด๊ฒ์ ๋ซ์ต๋๋ค. ๋๋ ์ค์ ๋ก ํ๋ผ๋ฏธ์ค ๊ธฐ๋ฐ ํด๋ผ์ด์ธํธ์ ๋ํด ์ผ๋ง ์ ์ ์์ ํ์ง๋ง ๊ทธ ์์ ์์ ํ๋ผ๋ฏธ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋๋ ธ์ผ๋ฏ๋ก ๊ฒ์ํ์ง ์์์ต๋๋ค. ๋์ค์ ๊ธฐ๋ฅ ๋ถ๊ธฐ์ ์ฝ๋๋ฅผ ํธ์ํ๊ฒ ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ FOSS ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ธฐ๋ฅ ์์ฒญ์ ์์ฒญํ๋ ์ ๋ง ๋น์ ๋ฌธ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ๋๋ฌด ๋ง๋ค๋ฉด ์ ์คํ๊ณ ์์ฐ์ ์ธ ์ผ์ ํ๊ณ ์ปค๋ฎค๋ํฐ์ ๋์์ด ๋ ๊ฒ์ผ๋ก ์๊ฐ๋๋ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก PR์ ์ด๊ฑฐ๋ ์์ ์ redis ํด๋ผ์ด์ธํธ๋ฅผ ์์ฑํ๊ฑฐ๋ ์ ์ง ๊ด๋ฆฌ์์ ํ๋ ฅํ์ญ์์ค. ์์ ์์ ์ ์ํํฉ๋๋ค. ์ผ์ด ๋น์ ์ด ์๊ฐํ๋ ๋ฐฉ์๊ณผ ๋ค๋ฅด๋ค๊ณ ๋ถํํ๋ ๋์์ ์ธ ํ ๋ผ์ด๋ ๋ฌธ์ ๋ฅผ ์์ํ๋ ๊ฒ์ ์ปค๋ฎค๋ํฐ์ ๋์์ด ๋์ง ์๊ฑฐ๋ ์์ฐ์ ์ด์ง ์์ผ๋ฉฐ ์์ ์ ์ ๋๋ก ๋ฐ์ํ์ง ๋ชปํฉ๋๋ค.