Angular2同步承诺

杰·克里希南(Jai Krishnan)

Ionic 2get访问函数localStorage返回一个承诺。以下代码的问题在于,在将headers对象附加到Authorization之前,该对象已被返回我如何修改以下函数,以便headers仅在答应解决后才返回对象。

private _createAuthHeaders(): Headers {
    let headers = new Headers({
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    });
    this.local.get('authToken').then(res=>{
      headers.append('Authorization', res);
    }, err=>{
      headers.append('Authorization', '');
    });
    return headers;
}
蒂埃里圣堂武士

我将以这种方式重构您的代码:

private _createAuthHeaders(): Headers {
  let headers = new Headers({
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  });
  this.local.get('authToken').then(res=>{
    headers.append('Authorization', res);
    return headers;
  }, err=>{
    headers.append('Authorization', '');
    return headers;
  });
}

您可以像下面这样使用此方法:

this._createAuthHeaders().then(headers => {
  // do something like setting the headers on the request
  // and execute it...
});

编辑

您可以利用Promise链来使代码更整洁。这是一个示例:

this._createAuthHeaders().then(headers => {
  // do something like setting the headers on the request
  // and execute it...
  return this.http.get('some url', { headers: headers }).toPromise();
}).then(result => {
  // handle result
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular2同步承诺

来自分类Dev

Angular2承诺OnInit this

来自分类Dev

承诺与firebase的angular2

来自分类Dev

Angular2:承诺回报

来自分类Dev

Angular2 :: NgFor ::承诺

来自分类Dev

Angular2 HTTP同步

来自分类Dev

Angular2使用Subscribes作为承诺

来自分类Dev

承诺,Angular2和范围

来自分类Dev

Angular2可观察与可承诺

来自分类Dev

承诺,Angular2和范围

来自分类Dev

在 Angular2 中对 *ngFor 的承诺

来自分类Dev

Angular2:动态同步http请求

来自分类Dev

如何同步Angular2 http get?

来自分类Dev

同步angular2中的嵌套订阅

来自分类Dev

同步http post angular2

来自分类Dev

Angular2:可观察到的回报承诺

来自分类Dev

Angular2:同步两个发布请求

来自分类Dev

Angular 2然后承诺

来自分类Dev

Angular2返回一个已经解决的承诺

来自分类Dev

“错误:未捕获(承诺):没有Jsonp提供程序”(HTML / Javascript / Typescript / Angular2)

来自分类Dev

外部承诺不会触发Angular2更改检测(更新:它们确实会触发)

来自分类Dev

未处理的承诺拒绝:找不到用于加载组件Angular2的主出口

来自分类Dev

Angular2:未捕获(承诺中):不支持使用引号进行评估!在组件中

来自分类Dev

Angular2例外:错误:未捕获(按承诺):错误:无法匹配任何路由:

来自分类Dev

解决jQuery承诺后如何调用angular2方法

来自分类Dev

Angular 2和TypeScript的承诺

来自分类Dev

如何在没有浏览器同步的情况下提供angular2应用

来自分类Dev

Angular2视图在两个查看器之间同步

来自分类Dev

angular2变量在发布请求中变得未定义,同步失败