2016-11-23 100 views
0

我試圖在標頭中傳遞承諾值,但無法這樣做。將承諾值傳遞給標頭

class test{ 

    constructor(auth_key,auth_secret){ 
    this.auth_key = auth_key; 
    this.auth_secret = auth_secret; 
    console.log("============In class test============"); 
    this.authtoken = this.init().then(function(value){ 
     return value; 
    }); 
    } 

    init(){ 
    console.log("============In init function============"+this.auth_key); 
    let postData = {}; 
    return this.requestStt('test','POST',postData).then((response) => { 
     if (response.status == 200) { 
      return response.body.then((response) => { 
       //console.log(response.token); 
       let apiResp = {stt_token:response.token} 
       return apiResp; 
      }); 
     }else { 
      console.log(response) 
     } 
    }); 
    } 

    gettoken(){ 
    console.log(this.authtoken) 
    var reqHeaders = new Headers({ 
     "Accept":"application/json", 
     "Content-Type": "application/json; charset=UTF-8", 
     "token":this.authtoken, 
     }); 
    } 
} 

獲取錯誤,因爲this.authtoken是承諾對象。

任何人都可以請幫助我。

+0

因爲它代表'gettoken'什麼也不做,但創建'reqHeaders' - 在函數結束時被丟棄,以幫助,'gettoken'函數如何使用? –

+0

我將使用gettoken通過fetch()來打api,這需要通過標頭 –

+0

,所以打api的代碼將會在gettoken中? - 因爲,正如我所說,即使它現在,如果authtoken是「好」,該功能不會返回任何東西 –

回答

1

如果你改寫爲gettoken像如下:

gettoken(){ 
    return this.authtoken.then(function(token) { 
     return new Headers({ 
     "Accept":"application/json", 
     "Content-Type": "application/json; charset=UTF-8", 
     "token":token, 
     }); 
    }) 
} 

那當然,使用這些標題,您需要做的是這樣

xxx.gettoken().then(function(headers) { 
    // whatever you do with headers goes here 
});