일부 기능을 사용하기 위해 일부 WASM 코드 (Go 코드에서 컴파일)를 Angular에 통합했습니다. 현재이 작업은 한 곳에서만 수행되므로 전체 앱에서 공유되지 않습니다. WASM 및 Go에 대해 "표준"절차를 사용했습니다.
let go = new Go();
WebAssembly.instantiateStreaming(fetch('mywasm.wasm'), go.importObject).then((res) => {
go.run(res.instance);
myCoolWasmFunction();
});
그러나 앱의 여러 부분에서 WASM을 실행하고 싶으므로 이것을 서비스로 옮기려고했습니다. 나는 RxJS 주제를 사용할 수 있었고 그 후 그 함수에서 "실행 요청"을들을 수 있었다.
go.run(...)
,하지만 앱의 다른 부분으로 아무것도 반환 할 수 없습니다.
기본적으로 Angular 앱에서 wasm에 의해 노출 된 다양한 기능을 실행하는 깨끗하고 유용한 방법을 찾고 있습니다. wasm 물건을 넣을까요?
index.html
"전역 적으로 사용 가능한"함수를 호출하는 서비스를 만드시겠습니까? 앵귤러가이를 인식 할 수있게하려면
.d.ts
파일?
- 답변 # 1
관련 자료
- 입력으로 인해 각도 단위 테스트에 대한 모의 된 Http Get 서비스 요청이 실패 함
- 각도 2에서 목록을 올바르게 표시하는 방법
- typescript - Angular 4를 7로 업그레이드 할 때 서비스가 작동하지 않음
- javascript - 클래스 내에서 Angular를 사용하여 서비스 (주입 가능) 인스턴스를 만드는 방법
- javascript - Angular에서 비 Angular Service Worker를 실행하는 방법
- unit testing - NGRX를 사용하는 각도 서비스를 테스트하는 방법
- angular7 - Angular의 수동 서비스 작업자
- dependency injection - 각도 6에서 다른 서비스를 호출하는 방법
- typescript - 생성자를 사용하지 않고 각도 2 서비스를 인스턴스화하는 방법은 무엇입니까?
- java - 요청 본문의 각도 클라이언트에서 스프링 부트 컨트롤러로 맵을 올바르게 보내는 방법은 무엇입니까? 받은지도는 항상 비어 있습니다
- 각도 서비스 방법 실행 순서
- typescript - 각도로 서비스 속성을 동적으로 설정하는 방법은 무엇입니까?
- 컴포넌트 내에서 각도 서비스 구독/구독 테스트
- node.js - 경로를 표현하는 각도 2+ 서비스 게시 데이터
- javascript - Angular 서비스에서 Behavior Subject에서 데이터를 추출하는 방법은 무엇입니까?
- dependency injection - Angular에서 서비스 주입
- angular universal - route에 쿼리 매개 변수가 있으면 서비스를 사용할 수 없습니다
- typescript - 각도 서비스 - 서브 클래스 생성자 필수 또는 classname (?)에 대한 모든 매개 변수를 해석 할 수 없음
- 각도 공유 서비스가 값을 업데이트하지 않음
이 Github Repo의 도움으로이 문제를 해결했습니다. 서비스 내에서 공용 변수를 생성하고 WASM이로드 될 때 내 보낸 WASM 함수를 해당 변수로 설정하여 서비스 외부에서 호출 할 수 있도록하는 것만 큼 간단합니다. 다음 예제에서는 형식 안전성과 함께 작동하도록 작은 typescript 인터페이스를 추가했습니다.
따라서 WASM 서비스에서 다음과 같이 보일 수 있습니다.