![](/img/trans.png)
[英]how to make http get request in angular 2 http service with observables
[英]How to make Http request in a angular 6 service
這是我的事,我有一個消息服務,我想通過HTTP請求(Rest Api)從我的服務器收集數據,如下所示:
import { Sensor } from './sensor.model'
import { HttpClient } from '@angular/common/http';
export class MessageService{
mqttMessageData : JSON[]=[];
coapMessageData : JSON[]=[];
xmppMessageData : JSON[]=[];
constructor(private httpClient: HttpClient) {
}
getMqttMessages() {
this.httpClient.get<JSON>('http://127.0.0.1:5002/messages/mqtt').subscribe(data => {
this.mqttMessageData.push(data);
console.log(data);
});
}
但我在瀏覽器控制台上出現此錯誤(ng服務中沒有錯誤):
Uncaught Error: Can't resolve all parameters for MessageService: (?).
at syntaxError (compiler.js:1016)
at CompileMetadataResolver.push../node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getDependenciesMetadata (compiler.js:10917)
at CompileMetadataResolver.push../node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getTypeMetadata (compiler.js:10810)
at CompileMetadataResolver.push../node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getInjectableTypeMetadata (compiler.js:11032)
at CompileMetadataResolver.push../node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver.getProviderMetadata (compiler.js:11041)
at compiler.js:10979
at Array.forEach (<anonymous>)
at CompileMetadataResolver.push../node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getProvidersMetadata (compiler.js:10939)
at CompileMetadataResolver.push../node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver.getNonNormalizedDirectiveMetadata (compiler.js:10416)
at CompileMetadataResolver.push../node_modules/@angular/compiler/fesm5/compiler.js.CompileMetadataResolver._getEntryComponentMetadata (compiler.js:11013)
所以我假設httpClient存在問題,但我不知道如何以其他方式執行此操作。
您需要在服務上添加@Injectable
裝飾器
import { Injectable } from '@angular/core'
@Injectable()
export class MessageService {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.