OnDestroy जीवनचक्र हुक प्रदाताओं में उपलब्ध है। डॉक्स के अनुसार:
जीवनचक्र हुक जिसे निर्देश, पाइप या सेवा नष्ट होने पर कहा जाता है।
यहाँ एक उदाहरण है :
@Injectable()
class Service implements OnDestroy {
ngOnDestroy() {
console.log('Service destroy')
}
}
@Component({
selector: 'foo',
template: `foo`,
providers: [Service]
})
export class Foo implements OnDestroy {
constructor(service: Service) {}
ngOnDestroy() {
console.log('foo destroy')
}
}
@Component({
selector: 'my-app',
template: `<foo *ngIf="isFoo"></foo>`,
})
export class App {
isFoo = true;
constructor() {
setTimeout(() => {
this.isFoo = false;
}, 1000)
}
}
ध्यान दें कि ऊपर दिए गए कोड Service
में एक उदाहरण है जो Foo
घटक का है, इसलिए इसे नष्ट होने Foo
पर नष्ट किया जा सकता है।
प्रदाताओं के लिए जो रूट इंजेक्टर से संबंधित हैं, यह एप्लिकेशन नष्ट होने पर होगा, यह कई बूटस्ट्रैप के साथ मेमोरी लीक से बचने के लिए सहायक है, अर्थात परीक्षणों में।
जब माता-पिता इंजेक्टर से एक प्रदाता को बच्चे के घटक में सदस्यता दी जाती है, तो यह घटक को नष्ट करने पर नष्ट नहीं होगा, घटक में सदस्यता समाप्त करने के लिए यह घटक की जिम्मेदारी है ngOnDestroy
(जैसा कि कोई अन्य उत्तर बताता है)।
class Service implements OnDestroy
? और आपको क्या लगता है जब यह कहा जाता है यदि सेवा मॉड्यूल स्तर पर प्रदान की जाती है