Изисквания: Ъглови проекти, при натискане на бутон на страница, изпращат HTTP заявка, тъй като някои интерфейси отнемат време, трябва да показват ефекта на анимация на зареждане, а когато HTTP заявката е завършена, анимацията на зареждане ще бъде затворена.Когато заявката е успешна или възникне грешка, трябва да изключите анимацията за зареждане。
Конвенционално писане
Както следва:
Тоест, когато заявката успее и възникне грешка, трябва да извикате анимацията за затваряне – има ли по-лесен начин? Подобно на опита-хван-накрая в C#.
Използвайте оператора за финализиране
Това, което прави, е да се опита да хване финаланакраяфункция, трябва да напишем кода само веднъж и логиката ще бъде изпълнена независимо от успеха или неуспеха.
Кодът е следният:
Как работи финализацията? Той по същество добавя callback add(fn) към разглобяването на наблюдаем обект чрез абониране. Това гарантира, че ще бъде извикан при грешка, завършване и отписване.
Обърнете внимание, че операторът за финализиране се изпълнява веднага щом нашият Observable бъде завършен. Това е важно! За Angular HTTP това работи много добре, защото услугата Angular HTTP връща "завършено" след завършване на заявката.
(Край) |