1
我有一個大集合的異步函數,我有我想要暴露給lua的nodejs代碼。基本思想是我想執行lua腳本,並允許這些腳本回調我的一些nodejs代碼,以及異步地從執行的lua腳本返回一個值,自定義節點插件綁定到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);
});
這將如何處理問題的'async'部分?這個過程的盧阿方面是什麼樣的? –
這將處理問題的異步部分,因爲一旦調用回調,Nodejs進程將只寫入輸出流。因此產生異步的結果。有一段時間我不使用Lua,所以我不知道如何實現該部分 – yeiniel
可能你可以使用這裏給出的答案http://stackoverflow.com/questions/2829404/how-do-i-run -an-executable-using-lua – yeiniel