@@ -105,7 +105,8 @@ private async ValueTask<T> ExecAsync<T>(Func<IRedisClientAsync, ValueTask<T>> ac
105105 {
106106 using ( JsConfig . With ( new Text . Config { ExcludeTypeInfo = false } ) )
107107 {
108- return await action ( this ) . ConfigureAwait ( false ) ;
108+ var ret = await action ( this ) . ConfigureAwait ( false ) ;
109+ return ret ;
109110 }
110111 }
111112
@@ -120,11 +121,19 @@ ValueTask<string> IRedisClientAsync.GetValueAsync(string key, CancellationToken
120121
121122 Task < T > ICacheClientAsync . GetAsync < T > ( string key , CancellationToken token )
122123 {
123- return ExecAsync ( r =>
124- typeof ( T ) == typeof ( byte [ ] )
125- ? ( ( IRedisNativeClientAsync ) r ) . GetAsync ( key , token ) . Await ( val => ( T ) ( object ) val )
126- : r . GetValueAsync ( key , token ) . Await ( val => JsonSerializer . DeserializeFromString < T > ( val ) )
127- ) . AsTask ( ) ;
124+ return ExecAsync ( async r => {
125+ if ( typeof ( T ) == typeof ( byte [ ] ) )
126+ {
127+ var ret = await ( ( IRedisNativeClientAsync ) r ) . GetAsync ( key , token ) . ConfigureAwait ( false ) ;
128+ return ( T ) ( object ) ret ;
129+ }
130+ else
131+ {
132+ var val = await r . GetValueAsync ( key , token ) . ConfigureAwait ( false ) ;
133+ var ret = JsonSerializer . DeserializeFromString < T > ( val ) ;
134+ return ret ;
135+ }
136+ } ) . AsTask ( ) ;
128137 }
129138
130139 async ValueTask < List < string > > IRedisClientAsync . SearchKeysAsync ( string pattern , CancellationToken token )
@@ -169,10 +178,10 @@ ValueTask<bool> IRedisClientAsync.AddItemToSortedSetAsync(string setId, string v
169178 => ( ( IRedisClientAsync ) this ) . AddItemToSortedSetAsync ( setId , value , GetLexicalScore ( value ) , token ) ;
170179
171180 ValueTask < bool > IRedisClientAsync . AddItemToSortedSetAsync ( string setId , string value , double score , CancellationToken token )
172- => NativeAsync . ZAddAsync ( setId , score , value . ToUtf8Bytes ( ) ) . IsSuccessAsync ( ) ;
181+ => NativeAsync . ZAddAsync ( setId , score , value . ToUtf8Bytes ( ) , token ) . IsSuccessAsync ( ) ;
173182
174183 ValueTask < bool > IRedisClientAsync . SetEntryInHashAsync ( string hashId , string key , string value , CancellationToken token )
175- => NativeAsync . HSetAsync ( hashId , key . ToUtf8Bytes ( ) , value . ToUtf8Bytes ( ) ) . IsSuccessAsync ( ) ;
184+ => NativeAsync . HSetAsync ( hashId , key . ToUtf8Bytes ( ) , value . ToUtf8Bytes ( ) , token ) . IsSuccessAsync ( ) ;
176185
177186 ValueTask IRedisClientAsync . SetAllAsync ( IDictionary < string , string > map , CancellationToken token )
178187 => GetSetAllBytes ( map , out var keyBytes , out var valBytes ) ? NativeAsync . MSetAsync ( keyBytes , valBytes , token ) : default ;
@@ -221,7 +230,7 @@ ValueTask<bool> IRedisClientAsync.ExpireEntryAtAsync(string key, DateTime expire
221230 : NativeAsync . ExpireAtAsync ( key , ConvertToServerDate ( expireAt ) . ToUnixTime ( ) , token ) ;
222231
223232 Task < TimeSpan ? > ICacheClientAsync . GetTimeToLiveAsync ( string key , CancellationToken token )
224- => NativeAsync . TtlAsync ( key , token ) . Await ( ttlSecs => ParseTimeToLiveResult ( ttlSecs ) ) . AsTask ( ) ;
233+ => NativeAsync . TtlAsync ( key , token ) . Await ( ParseTimeToLiveResult ) . AsTask ( ) ;
225234
226235 ValueTask < bool > IRedisClientAsync . PingAsync ( CancellationToken token )
227236 => NativeAsync . PingAsync ( token ) ;
@@ -365,7 +374,7 @@ ValueTask IRedisClientAsync.SlowlogResetAsync(CancellationToken token)
365374 => NativeAsync . SlowlogResetAsync ( token ) ;
366375
367376 ValueTask < SlowlogItem [ ] > IRedisClientAsync . GetSlowlogAsync ( int ? numberOfRecords , CancellationToken token )
368- => NativeAsync . SlowlogGetAsync ( numberOfRecords , token ) . Await ( data => ParseSlowlog ( data ) ) ;
377+ => NativeAsync . SlowlogGetAsync ( numberOfRecords , token ) . Await ( ParseSlowlog ) ;
369378
370379
371380 Task < bool > ICacheClientAsync . SetAsync < T > ( string key , T value , CancellationToken token )
0 commit comments