Utilisation des méthodes Windows Runtime asynchrones

 

De nombreuses méthodes Windows Runtime sont asynchrones, notamment les méthodes susceptibles d'être longues à s'exécuter. Ces méthodes retournent généralement une action ou une opération asynchrone (par exemple, Windows.Foundation.IAsyncAction, Windows.Foundation.IAsyncOperation, Windows.Foundation.IAsyncActionWithProgress ou Windows.Foundation.IAsyncOperationWithProgress). Ces méthodes sont représentées dans JavaScript par le modèle CommonJS/Promises/A. Ainsi, elles retournent un objet Promise qui possède une fonction then, pour laquelle vous devez fournir une fonction completed qui traite le résultat si l'opération réussit. Si vous ne voulez pas fournir un gestionnaire d'erreur, vous devez utiliser la fonction done à la place de la fonction then.

System_CAPS_ICON_important.jpg Important

Les fonctionnalités Windows Runtime ne sont pas disponibles pour les applications qui s'exécutent dans Internet Explorer.

Dans l'exemple suivant, la fonction then accepte un paramètre qui représente la valeur finale de la méthode createResourceAsync.

client.createResourceAsync(uri, description, item)  
    // Success.  
    .then(function(newItem) {   
        console.log("New item is: " + newItem.id);  
            });  

Dans ce cas, si la méthode createResourceAsync échoue, elle retourne un objet Promise dans l'état d'erreur, mais ne lève pas d'exception. Vous pouvez traiter une erreur en utilisant la fonction then comme suit.

client.createResourceAsync(uri, description, item)  
    // Success.  
    .then(function(newItem) {   
              console.log("New item is: " + newItem.id);  
          }  
          function(err) {  
              console.log("Got error: " + err.message);  
          });  

Si vous ne voulez pas traiter l'erreur explicitement, mais voulez lever une exception, vous pouvez utiliser la fonction done à la place.

client.createResourceAsync(uri, description, item)  
    // Success.  
      .done(function(newItem) {   
               console.log("New item is: " + newItem.id);  
            });  

Vous pouvez également afficher la progression en utilisant une troisième fonction.

client.createResourceAsync(uri, description, item)  
    // Success.  
      .then(function(newItem) {   
               console.log("New item is: " + newItem.id);  
            },  
    // Error.  
            function(error) {   
               alert("Failed to create a resource.");  
            },  
    // Progress.  
            function(progress, resultSoFar) {   
               setProgressBar(progress);  
            });  

Pour plus d'informations sur la programmation asynchrone, consultez Asynchronous programming.

Utilisation de Windows Runtime dans JavaScript

Afficher: