Для людей, которые используют 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 определите здесь.
Пер Часто задаваемые вопросы по SDL Windows :
Вы должны использовать
main()
вместоWinMain()
, даже если вы создаете приложение Windows, поскольку SDL обеспечивает версиюWinMain()
, которая выполняет некоторую инициализацию SDL перед вызовом вашего основного кода.Если по какой-то причине вам нужно использовать
blockquote>WinMain()
, посмотрите исходный код SDL вsrc/main/win32/SDL_main.c
, чтобы увидеть какую инициализацию вам нужно выполнить в вашей функцииWinMain()
, чтобы SDL работал правильно.SDL требует инициализации, поэтому он вводит свою собственную функцию
main
, которая запускает свою инициализацию перед вызовом ваша «основная» функция, которую она переименовывает вSDL_main
, чтобы она не противоречила фактической функцииmain
. Как отмечено в FAQ, ваша функцияmain
должна иметь видint main(int argc, char* argv[])
Хотя я согласен с тем, что это странная практика, бывают ситуации, когда это разумное решение, хотя оно во многом зависит от платформы. Учтите, что разные платформы имеют разные точки входа. Windows обычно является WinMain, Linux является основным, взаимодействие с Android происходит в Java, WinRT использует расширения C ++ / CX и так далее. Точка входа в программу и API-интерфейсы могут быть очень специфичными для платформы, и SDL пытается избавить вас от необходимости иметь дело с этим. Если вы ориентируетесь только на Windows и SDL, это только для того, чтобы избавить вас от работы с WIN32 API, вам может и не понадобиться. Но если вы когда-нибудь выйдете за пределы рабочего стола, вы найдете это полезным, на мой взгляд.