Задать вопрос
@historydev
long long long long long .... int

Как создать два отдельных инстанса для сервиса в компоненте?

Пытаюсь инжектить 1 сервис двумя инстансами, один для камеры, второй для демонстрации экрана, в доках только такой пример нашёл, но он не работает или я что-то сделал не так:

@Component({
	selector: 'app-video-call',
	templateUrl: './video-call.component.html',
	styleUrls: ['./video-call.component.scss'],
	providers: [
		MediaDevicesService,
		MediaRecorderService,
		{ provide: 'userP2pService', useValue: P2pService },
		{ provide: 'displayP2pService', useValue: P2pService },
	]
})
constructor(
		public media_devices: MediaDevicesService,
		@Inject('userP2pService') public user_media_p2p: P2pService,
		@Inject('displayP2pService') public display_media_p2p: P2pService,
	)


Нужно чтобы 2 этих инстанса работали как отдельные сущности, чтобы я мог использовать два p2p канала, как я могу это реализовать?
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Javascript.ru
    Курс по Angular
    6 недель
    Далее
  • Skillfactory
    Профессия Frontend-разработчик PRO
    14 месяцев
    Далее
  • Компьютерная академия «TOP»
    Frontend разработка
    12 месяцев
    Далее
Решения вопроса 1
@historydev Автор вопроса
long long long long long .... int
Использовать useClass вместо useValue и здесь ModuleInjector, а не ElementInjector
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
А почему бы не сделать так, зачем эти токены строкой?
class ScreenMediaDevicesService extends MediaDevicesService {}
class CameraMediaDevicesService extends MediaDevicesService {}

providers: [ScreenMediaDevicesService, CameraMediaDevicesService ]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы