

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utiliser l'API client améliorée DynamoDB de manière asynchrone
<a name="ddb-en-client-async"></a>

Si votre application nécessite des appels asynchrones non bloquants à DynamoDB, vous pouvez utiliser le. [DynamoDbEnhancedAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/DynamoDbEnhancedAsyncClient.html) Elle est similaire à l'implémentation synchrone, mais avec les principales différences suivantes :

1. Lorsque vous créez le`DynamoDbEnhancedAsyncClient`, vous devez fournir la version asynchrone du client standard`DynamoDbAsyncClient`, comme indiqué dans l'extrait de code suivant.

   ```
    DynamoDbEnhancedAsyncClient enhancedClient = 
        DynamoDbEnhancedAsyncClient.builder()
                                   .dynamoDbClient(dynamoDbAsyncClient)
                                   .build();
   ```

1. Les méthodes qui renvoient un seul objet de données renvoient une partie `CompletableFuture` du résultat au lieu du seul résultat. Votre application peut ensuite effectuer d'autres travaux sans avoir à bloquer le résultat. L'extrait suivant montre la méthode asynchrone`getItem()`. 

   ```
   CompletableFuture<Customer> result = customerDynamoDbTable.getItem(customer);
   // Perform other work here.
   return result.join();   // Now block and wait for the result.
   ```

1. Les méthodes qui renvoient des listes de résultats paginées renvoient un [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/async/SdkPublisher.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/async/SdkPublisher.html)au lieu d'un [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/pagination/sync/SdkIterable.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/pagination/sync/SdkIterable.html)que le synchrone `DynamoDbEnhanceClient` renvoie pour les mêmes méthodes. Votre application peut ensuite abonner un gestionnaire à cet éditeur pour traiter les résultats de manière asynchrone sans avoir à les bloquer.

   ```
   PagePublisher<Customer> results = customerDynamoDbTable.query(r -> r.queryConditional(keyEqualTo(k -> k.partitionValue("Smith"))));
   results.subscribe(myCustomerResultsProcessor);
   // Perform other work and let the processor handle the results asynchronously.
   ```

   Pour un exemple plus complet d'utilisation du`SdkPublisher API`, consultez [l'exemple présenté](ddb-en-client-use-multirecord.md#ddb-en-client-use-multirecord-scan-async) dans la section de ce guide consacrée à la `scan()` méthode asynchrone.