如何在Angular中正确地从Github API进行多次调用?

时间:2017-11-30 20:07:24

标签: angular github-api

我很难理解为什么Github API与Postman一起使用但不在我的 Angular应用中。

例如

const url = `${this.apiBaseUrl}/orgs/angular/public_members?page=${pageNumber}`

即使有多个页面。

上述网址的代码为:

 getContributors(pageNumber): Observable<any> {
    const url = `${this.apiBaseUrl}/orgs/angular/public_members?page=${pageNumber}`;
    const requestOptions = this.getRequestOptions();

    return this.http.get(url, requestOptions);
  }

但是,使用时

 const url = `${this.apiBaseUrl}/users/${user}`;

(注意它是一个不同的端点/用户),超过1次(字面意思,它只能运行一次 - 偶尔两次),大多数呼叫保持不变(在Chrome中我得到:{{1 }})

上述网址的代码为:

Provisional headers are shown

getContributor(login): Observable<any> { const url = `${this.apiBaseUrl}/users/${login}`; const requestOptions = this.getRequestOptions(); return this.http.get(url, requestOptions).timeout(30000) .catch(error => Observable.of({ login, error, })); } 定义为:

getRequestOptions()

我注意到的是我的REST客户端(这里我使用Postman作为示例,在这个特定情况下我使用了Webstorm的一个),const readonlyToken = MY_API_TOKEN; const headers = new Headers({ // 'Cache-Control': 'no-cache', Accept: '*/*', Authorization: `token ${readonlyToken}`, }); return new RequestOptions({ headers }); } 可以工作,而使用Angular我得到Cache-Control

显然,在Postman中尝试一下,它确实有效。 现在,我不确定问题是Github API,但这种半工作情况很难调试。欢迎提出建议!

我一直在尝试延迟请求,但即使使用Cache-Control header not allowed in preflight requests运算符,它似乎也不起作用(我使用Observable's delay运算符)。 我无法分享完整的代码。

更新:我怀疑,没有批处理 API调用(即每1秒一次)有效。但是,这并没有解决原始问题

0 个答案:

没有答案