【发布时间】:2017-07-21 00:24:14
【问题描述】:
你好所有读过这篇文章的人。 我正在开发一个 Ionic2 应用程序,用户将在该应用程序中向服务器发送一些图像数据,如果服务器接收到该数据,我会显示确认信息,但如果出现错误,则显示存在错误。
问题是,当发送图像数据时,Ionic/Typescript 告诉我出现了错误,但是在检查服务器时,图像数据被完整接收,并且图像显示正常。
但是,通过客户端知道信息已被正确接收,以便我可以将其显示给用户,这对我来说仍然非常重要。
相关部分代码:
return new Promise((resolve, reject)=>{
this.http.get(url).map(res=>res.json()).subscribe(data=>{
console.log('InvoiceHttp.send() success!');
resolve(data);
}, err=>{
console.log('Http error on InvoiceHttp.send()');
console.error(err);
});
});
现在当我运行这个函数时,我得到控制台日志消息和错误输出,但错误输出是这样的:
ERROR: {"line":78889,"column":39,"sourceURL":"file:///var/containers/Bundle/Application/601C2294-78EA-48A2-9BAC-B53C04ADD458/MyApp.app/www/build/main.js"}
如果我查看这一行,它会将我带到 MapSubscriber 定义,这让我相信这是 .subscribe() 的错误。
我的第一个想法是服务器响应可能不是正确的 JSON 格式,但是在将响应更改为空白和 {} 后,错误仍然存在,我完全不知道可能会抛出什么这个错误。
感谢您的任何回复。
【问题讨论】:
-
只有一个问题:为什么不使用
toPromise运算符?例如。this.http.get(url).map(r=>r.json()).toPromise().catch(err=>log(err))? -
简短回答:我不知道,但后来改变了它。它确实给了我更多的冗长响应,但没有什么能真正帮助我调试它。
-
你能提供这个更新的回复吗?
标签: angular typescript ionic2