Can't send ionic storage name to backend?

I try to post username through http post but i can not send. I sent manually it works but getting from storage is problem may be async problem i do not know. here is code what i did.

     public username:string;

      constructor(public http: Http, public storage: Storage) {
        this.storage.get('name').then((val) => {
          this.username = val;
        })
      }
    rpichart(){
         let headers = new Headers();
          headers.append('Content-Type', 'application/json');
             //headers.append('username',this.username);
             var options = new RequestOptions({headers: headers});
          return this.http.post('http://node.futures.com:9000/rpichart/',JSON.stringify({username:this.username}),options).map((res:Response) => res.json())
        .catch((error:any) => Observable.throw(error.json().error || 'Server error'));
      }

Can you comment your error log? Because I cant see any error.
But you should change var options tolet options

Did you read the Angular 2 HTTP docs?: https://angular.io/docs/ts/latest/guide/server-communication.html

I check with let also but that is not the problem i got error which is username undefined. when i check with console username stored in local storage but sending with post request got problem.

I found the problem I think.

Change JSON.stringify({username:this.username}) to {username: this.username}
You don’t need to stringify the JSON object

One more thing, if you want to use your own HTTP headers, follow this guide: http://stackoverflow.com/questions/3561381/custom-http-headers-naming-conventions

Thank you for your effort i can not get it still. i will try to make it.