Обе стороны, похоже, привязаны к циклу дайджестов, как и в случае, обратные вызовы успеха/ошибки не вызываются до тех пор, пока цикл дайджеста не будет запущен. Это означает, что все, что использует обещания, такие как $http
или созданные вручную обещания, также необходимо вызвать цикл дайджеста, чтобы запустить обратные вызовы.Условные обещания без цикла дайджеста
Можно ли использовать обещания в угловом, без выполнения цикла дайджестов? Я понимаю, вы можете использовать $applyAsync
, который планирует цикл дайджеста немного позже, но я ищу, чтобы не запускать цикл дайджеста вообще, и все еще выполняются обратные вызовы then
.
По сути, я пытаюсь решить, как сжать как можно больше производительности из приложения, которое будет использовать справедливое бит асинхронного поведения, которое потребует обещаний, но не обязательно цикла цикла дайджеста.
Действительно ли вы определили, что цикл дайджеста имеет стоимость исполнения? Отсрочка вызова продолжения является фундаментальным свойством обещаний и не кажется дорогостоящей в других реализациях (я не знаю обещаний AngularJS). –
@dystroy Я не определил, что он имеет очень высокую производительность, поскольку приложение еще не существует. Однако, даже если это занимает 10 мс (и в предыдущих приложениях они могут занимать больше времени), и у меня есть 10 обещаний, разрешающих через 1 секунду (каждый из которых инициируется отдельными событиями), что заканчивается 100 мс времени, затраченного в секунду на ненужный дайджест что кажется, что он может войти на территорию пользователя, способного заметить, тем более что он сокращает время, доступное для другой обработки. –
Итак, используйте местные обещания. – dfsq