Сценарий Powershell, вызывающий асинхронный метод? - PullRequest
0 голосов
/ 16 октября 2019

Мне нужно вызвать асинхронный метод типа CLR следующим образом:

$tokenTask = $tokenProvider.AcquireAccessToken()
$tokenTask.Wait()
Write-Output "Token: $($tokenTask.Result)"

Это не работает, так как по какой-то причине не может успешно вызвать Wait:

Exception calling "Wait" with "0" argument(s): "One or more errors occurred."
At D:\UserManagement\STP.UserManagement.Identity.Client\STP.UserManagement.Identity.Client.Sample\authenticate.ps1:8 char:1
+ $tokenTask.Wait()
+ ~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : AggregateException

Как я могу ждать и получить результат моего асинхронного метода? Есть ли в PowerShell ключевое слово типа await?

1 Ответ

1 голос
/ 16 октября 2019

Моя проблема заключалась в том, что моей задачей было Faulted с самого начала из-за отсутствия Add-Type для другой сборки. Я нашел это так:

$tokenTask = $tokenProvider.AcquireAccessToken()
Write-Output "authenticating... ($($tokenTask.Status), $($tokenTask.Exception))"
$tokenTask.Wait()
Write-Output "authenticated ($($tokenTask.Status), $($tokenTask.Exception))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...