0

node.js 内から oriento モジュールを使用して OrientDB にアクセスします。原則として、すべて正常に動作しますが、唯一のことは、プログラムが正常に終了しないことです。次に例を示します。

const oriento = require("oriento");
const server = oriento({});
const db = server.use(dbname);
db.select("@rid").from("codelists").limit(1).scalar().then(function (result) {
    console.dir(result);
}).finally(function () {
    db.close();
    server.close();
    console.info("finished");
});

プログラムは選択を実行し、次に「then」句、最後に「finally」句を実行します。大丈夫だ。しかし、それは終了しません。イベント ループに何かがかかっているようです。しかし、何?どうすればそれを取り除くことができますか?問題は実際には「Ctrl-Cを押す」か、すべてが完了したときにprocess.exit()を使用するよりも悪化します。これは、コードが単体テスト内で実行されることになっているため、exitを呼び出すことができないためです。助言がありますか?

4

2 に答える 2

1

この問題は、oriento の現在のマスター バージョンで解決されています。https://github.com/codemix/oriento/issues/170

于 2014-12-20T19:41:33.463 に答える
0

とを使用process._getActiveRequests()process._getActiveHandles()て、アプリを開いたままにしているものを確認できます。それらは文書化されていませんが、このシナリオでは一般的に使用されています。

于 2014-12-18T22:48:19.253 に答える