簡體   English   中英

如何在Restify中使用異步事件

[英]How to using asynchronous events in restify

我有一個簡單的Restify Web服務,該服務調用一個將命令寫入串行端口的函數

var restify = require('restify')
var com = require("serialport");

server.get('/scaleGetWeight/', getScaleWeight);
server.head('/scaleGetWeight/', getScaleWeight);

function getScaleWeight(req, res, next) {
    serialPort.write("S\r\n");
    res.send(?);
}

串行端口在事件中返回請求

serialPort.on('data', function(data) {
  console.log(data);;
});

將結果返回給客戶的正確方法是什么?

您需要在RESTful getter函數中添加該事件處理程序,並在處理程序中調用res.send()

您仍然需要確定哪些串行端口響應屬於哪些HTTP請求。

如果一次獲得兩個HTTP請求,則僅運行一次處理程序將無濟於事; 您將需要應用程序級邏輯來將響應映射到請求。

或者,您可以使每個新請求在寫入串行端口之前等待任何未決請求完成。 (承諾使此操作變得更加簡單)
如果收到一個錯誤的請求,請確保不會永遠掛死。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM