有没有办法在延迟后停止功能? Nodejs的

时间:2019-01-11 08:48:52

标签: node.js function delay abort

是否可以在延迟后中止功能?像这样:

function f() {
    //Do some process here
}

after(10000).stop(f)

关于该怎么做的任何想法? 谢谢。

3 个答案:

答案 0 :(得分:1)

尝试这样的集群模块

ASSERT

答案 1 :(得分:0)

您可以将函数包装在检查时间的函数中。

function stopExecutingAfter(timeout, fn) {
  var stopifAfter = Date.now() + timeout
  return function() {
    if(Date.now() > stopIfAfter) return
    fn.apply(null, arguments)
  }
}

答案 2 :(得分:0)

所以我们将拥有killer.js库

const cluster = require('cluster');

module.exports = (fn, delay) => {
    if (cluster.isMaster) {
        const fn = cluster.fork();
        setTimeout(_=>fn.process.kill(), delay);
    } else {
        fn();
    }
}

使用示例以及

const killer = require('./killer');

function fn() {
    for(;;) process.stdout.write('#');
}

killer(fn, 100);