Javascript 如何在Node.js中为HTTP POST排队?
我正在构建一个简单的物联网项目,其中一个微控制器每秒向MQTT代理发布一个特定主题的传感器数据。我正在使用Node.js构建一个应用程序,该应用程序使用mqtt库订阅此主题,并通过POST请求(使用请求库)使用其API将传感器数据更新到Thingspeak频道 我已经设法建立了一些几乎是工作,但我面临着一个小问题。我无法更新所有传感器数据,因为POST请求需要一些时间,在此期间还发布了其他传感器数据 我正在考虑一种解决方案,可以将需要通过POST请求更新的传感器数据排队 这是我目前的代码:Javascript 如何在Node.js中为HTTP POST排队?,javascript,node.js,http-post,mqtt,Javascript,Node.js,Http Post,Mqtt,我正在构建一个简单的物联网项目,其中一个微控制器每秒向MQTT代理发布一个特定主题的传感器数据。我正在使用Node.js构建一个应用程序,该应用程序使用mqtt库订阅此主题,并通过POST请求(使用请求库)使用其API将传感器数据更新到Thingspeak频道 我已经设法建立了一些几乎是工作,但我面临着一个小问题。我无法更新所有传感器数据,因为POST请求需要一些时间,在此期间还发布了其他传感器数据 我正在考虑一种解决方案,可以将需要通过POST请求更新的传感器数据排队 这是我目前的代码: va
var mqtt = require("mqtt")
var request = require("request")
var client = mqtt.connect('hostname')
client.on('connect', function () {
client.subscribe('topic')
})
var postReq = function(data) {
request.post('https://api.thingspeak.com/update', {form: {sensor_data: data}}, function(err,response,body){
console.log(body)
}}
}
client.on('message', function (topic, data) {
// message is Buffer
postReq(data)
})
在此期间,还会发布其他传感器数据。
为什么不延迟发布其他数据?或者发出一个异步请求以同时执行这两个操作。request
库是同步的还是异步的?