私はluaに公開したいnodejsコードにある非同期関数の大きなコレクションを持っています。基本的な考え方は、luaスクリプトを実行して、それらのスクリプトが私のnodejsコードの一部にコールバックし、実行されたluaスクリプトから値を非同期的に返すことです。カスタムノードのアドオンとエクステンションとのバインド
この例ではmyCustomNodejsAddon
は私が書いたカスタムアドオンは、luaをバインドしてluaスクリプトを実行する方法を知っています。未解決の問題の1つは、luaスクリプトから値を非同期的に返す方法です。
誰もこれの前に何かをしましたか?私は非常にポインタ、思考、例に興味があります。より良い例と
EDIT:1は、この問題へのアプローチよりも
-- 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);
});
これは、質問の「非同期」部分をどのように処理するのでしょうか?このプロセスのルア側はどのように見えますか? –
これは、コールバックが呼び出されるとNodejsプロセスが出力ストリームに書き込むという意味で、質問の非同期部分を処理します。したがって、非同期的に結果を生成する。私はLuaを使用しない時間があるので、その部分を実装する方法がわからない – yeiniel
ここで与えられた答えを使うことができるかもしれないhttp://stackoverflow.com/questions/2829404/how-do-i-run -an実行-LUA使用して、あなたの提案は包丁がありながら – yeiniel