角度,矩形-如果有更多当前搜索,则中止搜索调用

阿吉玛伊玛(Ajmajmajma)

我必须使用restangular调用从服务中提取一些数据。服务器最近变慢了-所以我一直在寻找一种方法,如果有新的呼叫进入,则中止该呼叫(或者可能只是诺言),并告诉我的服务使用最近的呼叫。这是服务电话-

  MySearchService.prototype.search = function(query) {

           return $q(function(resolve, reject) {
               var url = '/services/search';
               Restangular.oneUrl(url, url)
                    .customPOST(query)
                    .then(resolve)
                    .catch(reject);
           });
  };

我在想类似

.withHttpConfig({hasNewSearch: abort.promise}) <<not sure you can put custom key in here
abort.resolve();

但是我不认为这是您的目标。我正在寻找一种方法来取消呼叫(如果有较新的呼叫),也许这完全是有希望的,而不是真的很麻烦吗?将不胜感激任何建议。谢谢!

本杰明·格伦鲍姆(Benjamin Gruenbaum)

这实际上是一个很酷的问题,通常称为lastflatMapLatest

// we want something that takes a function and only cares about the last result
function last(fn){ // fn returns a promise
  var lastValue = null; // the last promise to check against
  return function(){ 
    // call the function, and mark it as the last call
    lastValue = fn.apply(this, arguments); 
    var p = lastValue;
    return p.then(function validateLast(v){ // call the function, when it resolves
        if(p === lastValue){ // if we're still the "last call" when we resolved
            return v; // we're done, successful call
        } else {
            // a newer one came, resolve with it and verify no one came since
            return lastValue.then(validateLast);
        }
    });
}

这会让你做类似的事情

MySearchService.prototype.search = last(function(query) {
           // removed antipattern
           return Restangular.oneUrl('/services/search', '/services/search')
                             .customPOST(query);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何从类的角度调用对象,以便可以在矩形中使用它

从边界矩形和角度获取旋转的矩形坐标

如果有内表,则使用纯 JavaScript 进行过滤或搜索

jQuery自动完成以编程方式搜索和选择SELECT(如果有)

在OpenCV中绘制成角度的矩形

如果有使用搜索的对象,如何用包括孩子在内的预制件替换选定的对象?

如何在其他zip文件(如果有)中的zip文件中搜索字符串

在角度搜索输入字段?

以Unicode角度搜索

搜索栏的角度问题

矩形流中的快速点搜索

在数据框中搜索多个字符串,如果有条件,则自底向上搜索?

用坐标,长度,宽度和角度计算矩形的中心

从成角度的矩形的尺寸和位置中查找顶点

OpenCV-查找与静态深度倾斜矩形的角度

如何在角度4中按矩形裁剪

如何为ViewPager Android绘制成角度的矩形作为背景

如何确定两个矩形是否重叠(成角度)

处理静止的带角度的矩形障碍物的精灵碰撞

如果有任何命令返回非零值,则中止shell脚本吗?

遍历数组值后,如果有更多元素,请重复此过程

如果有3个或更多元素,则为可滚动div

将容器拉伸到底部,但如果有更多内容,则允许其扩展

如果有更多可用内存,将获得哪种性能?

如果有更新代码,则无法添加更多寄存器

如果有任何请求在tomcat线程池中创建更多线程怎么办

如果有“显示更多”按钮,如何从网站上抓取信息?

无损加入:如果有更多信息或需要进行投射才能加入

搜索搜索中的json数据:角度