Для людей, которые используют AngularJS , может справиться с этой ситуацией, используя Promises
.
Здесь it говорит,
Обещания могут использоваться для отключения асинхронных функций и позволяют объединять несколько функций вместе.
Вы можете найти приятное объяснение здесь .
Пример, найденный в docs , упомянутом ниже.
promiseB = promiseA.then( function onSuccess(result) { return result + 1; } ,function onError(err) { //Handle error } ); // promiseB will be resolved immediately after promiseA is resolved // and its value will be the result of promiseA incremented by 1.
Angular2 and Later
In
Angular2
, посмотрите на следующий пример, но его рекомендовал использоватьObservables
сAngular2
.search(term: string) { return this.http .get(`https://api.spotify.com/v1/search?q=${term}&type=artist`) .map((response) => response.json()) .toPromise();
}
Вы можете использовать это таким образом,
search() { this.searchService.search(this.searchField.value) .then((result) => { this.result = result.artists.items; }) .catch((error) => console.error(error)); }
См. здесь оригинал . Но TypScript не поддерживает native es6 Promises , если вы хотите его использовать, для этого вам может понадобиться плагин.
Кроме того, здесь представлены обещания spec определите здесь.
Вы не совсем конкретны, что ищете, но это удовлетворит то, что вы предоставили. Отобразите имена для пользователя. Продолжайте запрашивать, пока они ничего не введут. Для каждого матча мы показываем соответствующие результаты пользователю и продолжаем его.
# Gather information
$productDetails = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
# Display teaser information to the user
$productDetails | Select-Object DisplayName
do {
Write-Host "--McPrompter 5000--" -ForegroundColor Green
$response = Read-Host "Type a partial software title or <Enter> to quit"
# If there is text lets see if there is a match
If($response){
$results = $productDetails | Where-Object{$_.DisplayName -like "*$response*"}
If($results){
$results | Format-Table -AutoSize
} Else {
Write-Host "No match for $response. Please try again." -ForegroundColor Red
}
}
} until (!$response)
Обратите внимание на этот ключ
Поймите, что вам нужно будет проверить ключ syswow64, если система x64 получает список complete . Вы можете найти дополнительную информацию об этом здесь или в Google.
В основном вы можете попробовать простые вещи, отобразив список программных продуктов и получив свою логику после выбора.
$Softwares = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
$Choice = @{}
$Number = 1
foreach ($Software in $Softwares.DisplayName)
{
$Choice.add($Number,$Software)
$Number = $Number + 1
}
$Choice | Format-Table
[Int]$MenuChoice = read-host "Please enter your choice"
Switch($MenuChoice)
{
1{
Write-Host "Selected Software is" $Choice.get_item($MenuChoice);
#Your Logic here
}
2{
#Your Logic here
}
default{"please select a valid Software"}
}
Надеюсь, это поможет !!