2016-10-04 65 views
1

我有一個按鈕組件,它具有一個事件發射器,當它被觸發時,我想在按鈕中啓動一個加載動畫,並且當承諾解析時,停止加載動畫。帶有承諾的組件輸出

@Output() promiseClick: EventEmitter<any> = new EventEmitter<any>(); 

這將用於類似:

<my-button (promiseClick)="makeAPICall()"></my-button> 

凡makeAPICall()方法返回一個承諾。

我需要我的按鈕組件來知道makeAPICall()承諾何時已解決。這怎麼能實現?

+0

什麼是 「知道」 意味着什麼? –

回答

0
<my-button #button (promiseClick)="button.makeKnown(makeAPICall())"></my-button> 
makeKnown(p:Promise) { 
    p.then(result => this.result = result); 
} 
+0

但是,我怎樣才能從'my-button'組件內部的承諾訪問'then'回調?因爲'我的按鈕'不知道makeKnown函數。 –

+0

抱歉有錯。我更新了答案。 'makeKnown'將在'my-button'內。我不知道這是否是你想要的,因爲你沒有回答評論中對你答案的回答。 –

+0

是的!這正是我想要的!非常感謝!這似乎有點haxxy,這是唯一的方法來做到這一點? –