如何从异步数据中检查多个不等式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从异步数据中检查多个不等式?相关的知识,希望对你有一定的参考价值。

我有一个node.js程序,它每5秒向服务器发送一个POST请求并获取我想要的数据的值并跟踪它。例如,如果它超过某个数字发送日志消息,如果它变得更高,则调用另一个功能(最终我想设置5个或更多阈值)。我的问题是,如果我想跟踪多个阈值,我该怎么办?

我现在的方式是有setInterval函数每隔5秒调用我的getValue(限制),其中限制是我想要的限制,如果限制被绕过另一个函数被调用,我不想多次调用getValue多余的。

const request = require('request');

function getValue(limit){
    var JSONobject = {'ContractCode':   contractCode};
    request({
      url: getUrl,
      method: "POST",
      json: true,
      headers: {
        'content-type': 'application/json; charset = UTF-8'
      },
      body: JSONobject
    }, function (error, response, body) {
        var obj = JSON.parse(JSON.stringify(response));
        if(obj.body.d.LastTradedPrice > limit){
        console.log('passed the point : %d', obj.body.d.LastTradedPrice);
        }

    });
}

谢谢

答案

我不确定这个问题。我想说的是你想要以某种频率调用一个函数。从另一台服务器收集数据。另一个函数将调用它来获取最新数据。对于这种问题,您可以考虑使用rxjs。

这是简单的rxjs示例。

// Source.js

const Rx = require('rxjs');
const dataStream = new Rx.BehaviorSubject();
export.getLatestData = () => {
  return dataStream.asObservable();
};
const getData = (cb) => {
  setTimeout(() => {
    cb(Math.random());
  }, Math.random() * 10000)
};
setInterval(() => {
  getData((data) => {
    dataStream.next(data);
  })
});

//这里getLatestData将返回最新值

// Subscriber.js //在某些事件或电话上

const src = require('source');
route.get('/getData', () => {
  src.getLatestData().subscribe((latestData) => {
    console.log(`latestData:${latestData}`);
  })
});

以上是关于如何从异步数据中检查多个不等式?的主要内容,如果未能解决你的问题,请参考以下文章

为啥一个变量对多个值的不等式检查总是返回真?

为啥一个变量对多个值的不等式检查总是返回真?

异步任务片段背景数据

如何使用异步任务保存多个 JSON 数据对象

在 TabLayout 和 ViewPager2 中执行异步任务后更新具有相同布局的多个片段

JS fetch API:如何使用一个异步函数从多个文件中获取内容?