Dans ce Angular decorator tutorial, le tutoriel explique qu'un throttle décorateur (lodash throttle fonction) peut être ainsi:Comment fonctionne le décorateur de méthode angulaire?
import t from 'lodash.throttle';
export function throttle(milliseconds : number = 500) : MethodDecorator {
return function (target : any, propertyKey : string, descriptor : PropertyDescriptor) {
const original = descriptor.value;
descriptor.value = t(original, milliseconds);
return descriptor;
};
}
Et utiliser dans la classe suivante
@Component({
selector: 'app-posts-page',
template: `
<posts [posts]="posts$ | async"></posts>
`
})
export class PostsPageComponent {
constructor(private store : Store<any>) {
this.posts$ = store.select('posts');
}
@HostListener('document:scroll')
@throttle()
scroll() {
console.log('scroll');
}
}
Je me demande comment fonctionne l'accélérateur à changer la fonction de défilement. Quelqu'un pourrait-il expliquer ou me faire savoir comment je peux voir le code compilé? Merci!
Toutes les fonctions ont un descripteur, est-ce pas? – Jun
toutes les méthodes ont des descripteurs car une méthode est une propriété pointant vers une fonction –