ΠΡΠΌΠ°Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΡΠΈΠ½Π΅ΠΉ ΠΏΡΠΈΡΡ.
ΠΡΠΎ Π΅ΡΠ΅ 2019 Π³ΠΎΠ΄.
ΠΠ°ΠΆΠ΅ΡΡΡ, Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π²Π²Π΅ΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ 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, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠΌΠΈ. ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅. ΠΡΠΊΡΡΡΠΈΠ΅ ΡΠ°ΡΠΊΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΏΡΠΎΡΡΠΎ ΠΆΠ°Π»ΡΠ΅ΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ±ΡΡΠΎΠΈΡ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎ Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΈ ΠΏΠ»ΠΎΡ ΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° Π²Π°Ρ ΡΠ°ΠΌΠΈΡ .