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并返回它返回的内容。但我特别要求如何以异步方式做到这一点。