0

ラムダ関数でogr2gr モジュールを使用しようとしていますが、いくつか問題があるため、誰かがモジュールをラムダ関数で使用しようとしたかどうかを確認したかったのですか? 私がogr2ogrモジュールを使用している方法は、.promise(). ただし、ラムダ関数を実行しようとすると、ログに何も表示されません。約束を果たせなかったようですか?私のコードが約束でどのように見えるかは次のとおりです。

let data = await ogr2ogr(path)
            .destination(database)
            .options(['-f "PostgreSQL"', '-nlt PROMOTE_TO_MULTI', 'nln <schemaName>."' + tableName + '"', '-overwrite']).promise();
console.log(data);

ドキュメントに書かれている通りにやっていますが、それでもうまくいきません。私が指摘しなければならないことは、私がやろうとしたことです

let ogr = ogr2ogr(path)
            .destination(database)
            .options(['-f "PostgreSQL"', '-nlt PROMOTE_TO_MULTI', 'nln <schemaName>."' + tableName + '"', '-overwrite']);
console.log(ogr);

そして、実際にログに EventEmitter が表示されます。

EventEmitter {
  _inPath: '<path_of_file>',
  _onStderr: [Function (anonymous)],
  _driver: {},
  _args: [],
  _timeout: 15000,
  _format: 'GeoJSON',
  _skipfailures: false,
  _testClean: [Function (anonymous)],
  _destination: <database information>,
  _options: [
    '-f "PostgreSQL"',
    '-nlt PROMOTE_TO_MULTI',
    'nln useradministration.tableName',
    '-overwrite'
  ]
}

しかし、関数を使用して、ドキュメントにあるようにコールバックを実行しようとすると、.exec()何も出力されません。

        let ogr = ogr2ogr(path)
            .destination(database)
            .options(['-f "PostgreSQL"', '-nlt PROMOTE_TO_MULTI', 'nln <schemaName>."' + tableName + '"', '-overwrite']);
        console.log(ogr);
        
        ogr.exec(function (er, data) {
          if (er) {
            console.error(er);
          }
          console.log(data);
        });

私は正直なところ、この時点で困惑しており、どうすればよいかわかりません。誰かが同様の問題を抱えていたり、プロミスやコールバックがラムダ関数で機能する理由について説明したりした場合など、どんな助けも大歓迎です。

4

1 に答える 1