ionic async awaitでAPIへ同期的にリクエスト

やりたいことはタイトルのとおり。初めてでハマったのでコードをメモしておく。

import { Component } from '@angular/core';
import { Http, Headers,RequestOptions } from '@angular/http'

import 'rxjs/add/operator/map'
import 'rxjs/add/operator/catch'

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(
    public http: Http
  ) {
  }

  ionViewDidEnter() {
    this.requestApiAsync()
  }

  async requestApiAsync() {
    for (var i = 1; i <= 3; i++) {
      console.log(i + '回目')
      let result = await this.requestApi()
      console.log(result)
    }
  }

  requestApi() {
    return new Promise((resolve, reject) => {
      let url = 'http://example.com/path/to'
      let body = 'key=value'

      let headers = new Headers({
	"Content-Type": "application/x-www-form-urlencoded"
      })

      let options = new RequestOptions({
	headers: headers
      })

      this.http.post(url, body, options)
	.map(response => response).catch(error => error)
	.subscribe(
          result => resolve(result.json()),
          error => reject(error)
	)
    })
  }
}

以上です