var coll= '';
function test(callback){
MongoClient.connect(url, function(err, db) {
if(err) throw err;
coll=db
callback(coll);
});
}
test();
console.log(coll)
これは私のコードです。私が 'coll'変数を印刷するとき、それは定義されていません。コールバックの外部から変数にアクセスする方法。現在、エラーコールバックを得ることがあなたのtest()
機能、あなたのtest()
関数内のため、ステートメントに引数として任意のコールバック関数を渡しされていない機能のnodejsアクセス変数のように、コールバッファブルのようなコールバック外の変数
coll = db;この – Mahi
を既に試してみてください。それはMongoClient.connect関数内で実行されています。 – AJS
コールバックは非同期で、コールバック関数の中に 'console.log(coll);'を入れます。関数の外側で変数 'coll'を呼び出すことはできません。なぜなら、' MongoClient.connect'コールバックの後で定義されるのは、非同期であるからです。なぜ 'console.log(coll)'が空に出力されるのですか?undefined | null – Beginner