如何在循环中发送http获取方法Typescript。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在循环中发送http获取方法Typescript。相关的知识,希望对你有一定的参考价值。
我想用循环的方式按Id获取10个问题。但是我得到了错误。(TS) Type 'Subscription' is missing the following properties from type 'Question': QuestionId, Content, TestId, Test
我的问题类
import { Test } from './test';
export class Question {
QuestionId: number;
Content: string;
TestId: number;
Test: Test;
}
我在data.service中的get方法
getQuestionById(id: number) {
return this.http.get(this.questionUrl + `/${id}`);
}
我的组件
questions: Question[];
question: Question;
getQuestions() {
for (let i = 1; i < 11; i++) {
this.questions[i] =
this.dataService.getQuestionById(i)
.subscribe((data1: Question) => {
this.question = data1;
});
//this.questions.push(this.dataService.getQuestionById(1)
// .subscribe((data1: Question) => {
// this.question = data1;
// }););
}
}
我应该如何改变我的 getQuestions()
方法使其工作?
答案
你需要初始化 this.questions
之前 for
语句。
this.questions = []
我相信你的for语句也需要调整。
for (let i = 0; i < 11; i++) {
this.dataService.getQuestionById(i)
.subscribe((data1: Question) => {
this.questions.push(data1)
});
}
看来,你不需要 this.question
实例。
Angular使用的是RxJs(它有异步调用的订阅机制)。你需要在 .subscribe
功能
以上是关于如何在循环中发送http获取方法Typescript。的主要内容,如果未能解决你的问题,请参考以下文章
如何在 node.js 中使用 axios 循环许多 http 请求