如何从异步数据中检查多个不等式?
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}`);
})
});
以上是关于如何从异步数据中检查多个不等式?的主要内容,如果未能解决你的问题,请参考以下文章