0
在下面的函數中,我試圖返回第二個異步調用的promise對象,但是typescript抱怨函數必須返回一個值。我不知道我怎麼能做到這一點?我如何退還第二個承諾?返回第二個承諾TypeScript jquery承諾
private getSalesUrl<TServiceInput>(serviceCall: (args: TServiceInput) => JQueryPromise<IServiceResponseT>, args): JQueryPromise<any> {
serviceCall(args).done(result => { //1st async call
if (result.serviceOutput) {
if (result.serviceOutput.key === "URL") {
return tipsInterop.executeSalesRequest(result.serviceOutput.value); //2nd async call
}
}
});
}
的'return'是serviceCall的')了'done'回調('掉了。你需要'返回serviceCall(...)'以便通過serviceCall返回內部返回... – marekful
如果我返回serviceCall,那麼getSalesUrl.done()將在第一個異步調用的上下文中執行。我想getSaleUrl.done()在第二次異步調用的上下文中執行。 –
A)不要使用'done'或'fail',總是使用'then'。 B)你實際上並沒有從'getSalesUrl'返回任何東西,但是你只從完成的回調函數返回 – Bergi