我正在尝试在 Promise 函数中发出 http 请求。我明白了this.http.post,undefined error...
我知道我必须以this某种其他方式访问,但我不明白该怎么做。
有人愿意帮助我吗?
doUpload(files: Array<File>): Promise<Array<UploadResult>> {
console.log(files);
return new Promise((resolve, reject) => {
setTimeout(() => {
let result: Array<UploadResult> = [];
for (let file of files) {
this.http
.post(this.APIURL + "/image/upload/markdown", file)
.subscribe((data) => {
console.log(data);
});
result.push({
name: file.name,
url: `https://avatars3.githubusercontent.com/${file.name}`,
isImg: file.type.indexOf("image") !== -1,
});
}
resolve(result);
}, 3000);
});
}
错误:
> TypeError: undefined is not an object (evaluating 'this.http.post')
> (anonyme Funktion) — sensor-edit.component.ts:308
> onInvokeTask — core.js:39680
> runTask — zone-evergreen.js:168
> invokeTask — zone-evergreen.js:465
> timer — zone-evergreen.js:2650
构造函数:
constructor(
private fb: FormBuilder,
private route: ActivatedRoute,
private api: ApiService,
private _routerService: Router,
private errorService: ErrorModalService,
private sanitizer: DomSanitizer,
private http: HttpClient
) {}
并doUpload在我的 Html 中这样调用:
<div class="container well come-space">
<md-editor formControlName="markdown" name="Content" [height]="'400px'" [upload]="doUpload">
</md-editor>
</div>