我有一個返回鏈接承諾的類,第一個承諾的類型爲angular.IPromise<Foo>
,第二個承諾的類型爲angular.IPromise<Bar>
。函數的返回類型返回鏈接的承諾
爲什麼它的doSomething
angular.IPromise<Bar>
返回類型?
我本來以爲,返回類型是angular.IPromise<Foo>
因爲那是由函數返回的第一件事。我知道,then()
返回一個承諾,並將其返回的迴應,但這仍然令我困惑。
import { Something } from '../somewhere';
import { Bar } from '../somewhereelse';
class Test {
doSomething(): angular.IPromise<Bar> {
return Something.getFoo() // getFoo() return type angular.IPromise<Foo>
.then(() => {
let x: Bar = {};
return x;
});
}
}
任何幫助,將不勝感激。如果需要,我很樂意提供更多的代碼。
你怎麼計算,返回類型是'角。IPromise'如果你聲明'Bar'作爲返回值的類型?打字稿不知道* runtime *返回值,它靜態分析代碼*。 –
返回類型是angular.IPromise - 我可以很容易地測試。我期待返回類型是angular.IPromise ,因爲這是doSomething()函數返回的第一件事。 –
'.then'是'Promise','.map'是'Array'。 –