【问题标题】:Google Closure XhrIo PROGRESS EventTypeGoogle Closure XhrIo PROGRESS EventType
【发布时间】:2017-02-08 14:50:32
【问题描述】:
我向 XhrIo 对象注册了一个 EventType.PROGRESS 侦听器和一个 EventType.COMPLETElistener。我调用XhrIo.send 方法发布一些表单数据。 COMPLETE 侦听器按预期触发。但是PROGRESS 监听器似乎永远不会触发(我也尝试过UPLOAD_PROGRESS、DOWNLOAD_PROGRESS 和INCREMENTAL_DATA,但没有运气)。
我搜索了代码示例,但(令人惊讶的是)找不到任何代码示例。
以前有没有人成功使用过google关闭EventType.PROGRESS?
【问题讨论】:
标签:
javascript
google-closure-library
【解决方案1】:
这应该可以工作:
goog.events.listen(xhr, goog.net.EventType.PROGRESS,
(progressEvent) => {
console.log('Downloaded ' + progressEvent.loaded + '/' + progressEvent.total);
});
【解决方案2】:
如何创建一个新的 XhrIo 实例并通过 xhr_ 属性访问原始的 xhr 对象?然后可以监听进度事件,并报告进度。在我的本地主机上,我在发送数据时得到奇怪的结果,即加载的只是一些数字,总数为 0。
const xhr = goog.net.XhrIo.send('/api/upload/test-api', () => {
const obj = xhr.getResponseJson()
}, 'POST', base64encoded)
goog.events.listen(xhr.xhr_, 'progress', ({ event_ }) => {
console.log('Uploaded ' + event_.loaded + '/' + event_.total)
})