如何从异步数据检查多个不等式?
我有一个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}`);
})
});
以上是 如何从异步数据检查多个不等式? 的全部内容, 来源链接: utcz.com/qa/262502.html