typescript - অ্যাপ্লিকেশনটি কৌনিক 2 এ শুরু হলে কীভাবে পরিষেবা চালানো যায় run



angular (3)

আমি একটি পরিষেবা সকেট সার্ভিস তৈরি করেছি, যা মূলত এটি সকেটটিকে আরম্ভ করে অ্যাপটিকে বন্দরে শোনার জন্য। এই পরিষেবাটি কিছু উপাদানগুলির সাথে ইন্টারঅ্যাক্ট করে।

// socket.service.ts

export class SocketService {
    constructor() {
        // Initializes the socket
    }
    ...
}

আমি জানি সকেট সার্ভিস এর কনস্ট্রাক্টরের কোডটি তখনই চলতে শুরু করবে যখন কোনও উপাদান সকেটস সার্ভিস ব্যবহার করবে।

এবং সাধারণত অ্যাপ্লিকেশনগুলিতে কোডগুলি দেখতে এই রকম হয়:

// app.ts

import {SocketService} from './socket.service';
...
class App {
    constructor () {}
}
bootstrap(App, [SocketService]);

তবে আমি অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে এই পরিষেবাটি চালানো চাই run সুতরাং আমি একটি কৌশল তৈরি করেছি, কেবল private _socketService: SocketService ()। সুতরাং এখন কোডগুলি এর মতো দেখাচ্ছে:

// অ্যাপ.টি (নতুন)

import {SocketService} from './socket.service';
...
class App {
    constructor (private _socketService: SocketService) {}
}
bootstrap(App, [SocketService]);

এখন এটা কাজ করছে. সমস্যাটি হ'ল সকেট সার্ভিস এর কনস্ট্রাক্টর () রানে কোডগুলি কখনও কখনও হয় না। তাহলে আমি কীভাবে এটি সঠিকভাবে করব? ধন্যবাদ

https://src-bin.com


Answer #1

আপনার SocketService কনস্ট্রাক্টারে SocketService পরিবর্তে কোনও পদ্ধতিতে সরান এবং তারপরে আপনার মূল উপাদানটির কনস্ট্রাক্টর বা ngOnInit

SocketService

export class SocketService{
    init(){
        // Startup logic here
    }
}

অ্যাপ

import {SocketService} from './socket.service';
...
class App {
    constructor (private _socketService: SocketService) {
        _socketService.init();
    }
}
bootstrap(App, [SocketService]);

Answer #2

পরিষেবা নির্মাণকারী তৈরি করার চেষ্টা করুন এবং তারপরে আপনার উপাদানটির এনজিওএনইট () এ এটি কল করুন।

  • পরিষেবা মডিউল

 export class SocketService {
    constructor() { }
        getData() {
            //your code Logic
        }
}

  • উপাদান

export class AppComponent {
    public record;  
    constructor(private SocketService: DataService){ }
    ngOnInit() {        
        this.SocketService.getData()
        .subscribe((data:any[]) => {
            this.record = data;
        });   
  }  
}       

আশাকরি এটা সাহায্য করবে.


Answer #3

APP_INITIALIZER , যা বর্ণিত হয়েছে;

একটি ক্রিয়াকলাপ যা একটি অ্যাপ্লিকেশন শুরু করা হলে কার্যকর করা হবে।





angular