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