【发布时间】:2016-08-06 12:59:53
【问题描述】:
我在 nodejs 代码中有大量异步函数,我想将它们公开给 lua。基本思想是我想执行 lua 脚本并允许这些脚本回调我的一些 nodejs 代码,以及从执行的 lua 脚本中异步返回一个值,
在这个例子中,myCustomNodejsAddon 是我编写的一个自定义插件,它知道如何绑定 lua 和运行 lua 脚本。一个悬而未决的问题是如何从 lua 脚本异步返回值?
以前有人做过这样的事情吗?我会对任何指针、想法、示例非常感兴趣。
用更好的例子编辑:
-- user written lua script
getUser(1, function(err, user)
if err then
print('Error', err)
else
print('Found user with id', user.id)
return ''
end
end)
/*Create object with mapping of async functions*/
var callbacks = {
"getUser": function(userId, cb) {
db.Users.fetchById(userId).then(function(user) {
cb(null, user);
}, function(err) {
cb(err, null);
}
}
};
myCustomNodejsAddon.provideCallbacks(callbacks);
/* user written lua script has been stored into `scriptSrc` variable */
myCustomNodejsAddon.execute(scriptSrc, function(returnValueOfScript) {
console.log('done running user script: ', retrunValueOfScript);
});
【问题讨论】: