我有一个方法,当我运行角度2的beta时编译正常。现在我升级到v4,我收到一个我似乎无法解决的错误。
uploadPDF(file):Promise<String>
{
return this.authHttp.get(this.presentationBaseUrl + "presignedUploadURL?file-name="+ encodeURIComponent(file.name)) <<<<< error here
.toPromise()
.then( data => {
var uploadURL = data.json().signedRequest,
fileURL = data.json().url;
return this.http.put(uploadURL, file)
.toPromise()
.then(response =>{
return Promise.resolve(fileURL)
});
})
.catch (this.handleError);
}
我得到Type 'Promise<Response>' is not assignable to type 'Promise<String>'.
据我所知,我的方法在promise链的末尾返回一个字符串(返回Promise.resolve(fileURL))
答案 0 :(得分:0)
我有一个猜测,这是一个黑客,因为可能有更好的解决方案,但你可以尝试通过将已解决的承诺强制转换为任何...来绕过编译器错误...
试试这个:
return this.http.put(uploadURL, file)
.toPromise()
.then(response =>{
return Promise.resolve(fileURL) as any;
});