1
我試圖通過WAMP調用遠程函數。但是如果它具有異步行爲,我不知道如何編寫被調用的函數。在我看過的每個例子中,遠程函數返回的結果。這怎麼能以異步的方式完成,我通常會使用回調?AutobahnJS:遠程調用異步函數
例如: 這是一個函數的註冊,它可以異步獲取文件的內容。
session.register('com.example.getFileContents', getFileContents).then(
function (reg) {
console.log("procedure getFileContents() registered");
},
function (err) {
console.log("failed to register procedure: " + err);
}
);
以下是我將如何遠程調用該功能。
session.call('com.example.getFileContents', ["someFile.txt"]).then(
function (res) {
console.log("File Contents:", res);
},
function (err) {
console.log("Error getting file contents:", err);
}
);
但是,這裏是註冊的實際功能。
function getFileContents(file) {
fs.readFile(file, 'utf8', function(err, data) {
// How do I return the data?
});
}
如何從getFileContents中返回數據,以便通過WAMP連接發回數據?我知道我可以使用readFileSync並返回它返回的內容。但我特別要求如何以異步方式做到這一點。