Ada*_*dam 12 javascript meteor
我正在通过服务器方法执行数据库计数.用户可以选择他们想要执行计数的方式,然后调用该方法.
我的问题是计数可能需要一些时间,并且用户可能会在方法运行时改变主意并请求不同的计数.我有什么方法可以取消调用的方法并运行新的计数吗?
我以为this.unblock()可能会起作用; 它将允许运行一个新方法,但它不会取消旧方法.我也考虑过预先计数,然后只使用查找,但选择器组合太多了.
这是我的代码,它很简单:
//Server
Meteor.methods({
getFilterCount: function(oFilterSelector) {
return clMaBldgs.find(oFilterSelector, {}).count();
}
});
//Client
Meteor.call('getFilterCount', oFilterSelector, function (error, result) {
//do some stuff
});
Run Code Online (Sandbox Code Playgroud)
小智 0
更多的解决方法,但如果您有一个反应变量(可能是数据库中的条目),它是方法的状态,并且在方法本身中,您每次获得状态的机会都会检查该标志。
{
_id: "some id for the method", running: true
}
Run Code Online (Sandbox Code Playgroud)
方法的伪代码
Meteor.methods({
method: (_id) => {
status = getStatusForId(_id);
while(status) {
status = getStatusForId(_id);
}
}
});
Run Code Online (Sandbox Code Playgroud)
然后要停止它,只需将该标志更新为 false,该方法就会尽快停止。
| 归档时间: |
|
| 查看次数: |
1218 次 |
| 最近记录: |