基于参数的函数执行队列

时间:2017-04-28 14:56:06

标签: javascript node.js

我很难找到解决这个问题的方法。用例如下:

  • 我有一个从外部位置检索资源的功能
  • 通常多次同时调用此函数
  • 当发生这种情况时,我希望所有函数调用“等待”,直到第一个函数返回并只使用该函数的输出
  • 这里的问题的关键是该函数同时被调用10次

比如说函数是:

function retrieveResource(resourceId, callback) {
  extLib.getResource(resourceId, function (err, data) {
    callback(err, data);  
  };
};

因此,当多个“调用者”调用retrieveResource函数时,通常它们具有相同的resourceId。当这种情况发生在1秒的间隔内时,我只想对extLib.getResource执行1次调用,其余的只使用与第一次函数调用相同的值。

使用缓存在这里不太合适,因为函数大致同时调用,它们都大致同时检查缓存,缓存在那时是空的。

我看了_.debounce,_.throttle它们不是我正在寻找的,因为去抖只执行一个功能而且油门仍在执行所有功能。

有什么想法吗?

0 个答案:

没有答案