javascript – Meteor – 从客户端取消服务器方法

前端之家收集整理的这篇文章主要介绍了javascript – Meteor – 从客户端取消服务器方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我通过服务器方法执行数据库计数.用户可以选择如何执行计数,然后调用方法.

我的问题是计数可能需要一些时间,用户可能会在方法运行时改变主意,并请求不同的计数.我有办法取消调用方法并运行新的计数吗?

我以为这个.unblock()可能会工作;它将允许运行一个新的方法,但不会取消旧的方法.我也考虑过预先计数,然后只是使用查找,但是选择器组合太多了.

这是我的代码,这很简单:

//Server
Meteor.methods({
    getFilterCount: function(oFilterSelector) {
        return clMaBldgs.find(oFilterSelector,{}).count();
    }
});

//Client
Meteor.call('getFilterCount',oFilterSelector,function (error,result) {
    //do some stuff
});

解决方法

更多的工作,但如果您有一个反应变量(可能是数据库中的条目),该方法的状态,并且在方法本身,您检查该标志每一次机会获得状态.
{
    _id: "some id for the method",running: true
}

伪码用于方法

Meteor.methods({
    method: (_id) => {
        status = getStatusForId(_id);
        while(status) {
            status = getStatusForId(_id);
        }
    }
});

然后停止它,你只是更新该标志为假,该方法将尽快停止.

原文链接:https://www.f2er.com/js/154399.html

猜你在找的JavaScript相关文章