我多次调用 Google Analytics API 并将该数据加载到订阅中。现在我想创建一个进度条来通知用户正在加载数据并查看需要多长时间。
我读到最好使用出版物将数据从服务器传递到客户端。这是真的?
我在服务器上创建了以下出版物。什么是如下:
- 设置初始 progressValue 和 id 为 1 的初始发布
- 如果 progressValue 小于 100 则继续循环,并告诉 1 的发布正在更改。
- 在此代码下方,我有另一个正在运行的出版物,其中 progressValue 正在循环中的步骤中设置。
在查看客户端时,只会发布最后一个 progressValue。在此之前,我收到了很多空数组。所以它就像:
[]
[]
[]
[]
...
Progress publication
我想要的是客户端收到 progressValue 的每一个变化,而不仅仅是最后一个。我该如何解决这个问题?
如果对如何创建订阅进度条有更好的建议,这些答案也将被接受。
if (Meteor.isServer) {
let progressValue = 0;
Meteor.publish('progress', function() {
const self = this;
let lastProgressValue = 0;
const id = 1;
self.added('progress', id, {
progress: progressValue,
total: 100,
});
while (progressValue < 100) {
self.changed('progress', id, {
progress: progressValue,
total: 100,
});
}
self.ready();
});
...