Использование асинхронных методов среды выполнения Windows

Примечание

В этой статье нацелена версия браузера Microsoft Edge предыдущей версии. Сведения о новом браузере Microsoft Edge см. в статье "Дизайн Microsoft Edge " (на основе Chromium).

Многие методы Windows runtime, особенно в том числе слишком много времени, которые могут занимать долгое время. Эти методы обычно возвращаются асинхронное действие или операцию (например, Windows.Foundation.IAsyncAction Windows.Foundation.IAsyncOperation , , или Windows.Foundation.IAsyncActionWithProgress Windows.Foundation.IAsyncOperationWithProgress ). Эти методы представлены в JavaScript по типичным JJS, Promises/A. Это значит, что он возвращает объект "Прогноз", содержащий функцию,которая должна предоставить функцию, которая обрабатывает результат в случае успешного completed выполнения операции. Если вы не хотите использовать обработчик ошибок, вместо функции используйте функцию DOne. then

Важно!

Функции windows Runtime недоступны для приложений, работающих в Internet Explorer.

Примеры асинхронных методов

В следующем примере функция then имеет параметр, представляющий полное значение метода. createResourceAsync

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

В этом случае при ошибке возвращается исключение в состоянии ошибки, но не вызывает createResourceAsync исключение. Обработку ошибки можно обрабатывать с then помощью описанной ниже функции.

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

Если вы не хотите обрабатывать ошибку явно, но вы хотите, чтобы при этом возникло исключение, используйте вместо done этой функции.

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

Вы также можете отобразить ход выполнения, продолжающее ся, используя третью функцию.

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);
            });

Дополнительные сведения об асинхронном принадлежности см. в асинхронном программировании в JavaScript.

См. также

Использование среды выполнения Windows в JavaScript