ノードでasync/awaitに問題があります。私はこれを試してみる:非同期関数の結果は未定義です
function Read_Json_File() {
fs.readFile('import.json','utf-8',(err, data) => {
if (err) throw err;
json_data = JSON.parse(data);
return json_data;
});
}
async function run_demo() {
let get_json_file = await Read_Json_File();
console.log(get_json_file);
}
run_demo();
これはファイルからJSONの代わりにundefinedを返します。なぜファイルの読み込みが終了するのを待たないのですか?
ええ、今では夢のおかげのように動作しますが、私は約束を使用せずに非同期/のawaitを使用することができます聞きました。本当? –
@OFSTTP *は期待しています*。 Async/awaitは、約束の文法的な砂糖です。一度それを煮詰めると、async/awaitはただの約束です - 非同期のコードを同期して実行することはできません。あなたはいつも約束をある程度使用しなければならなくなり、非同期/待望の機能は最終的にもっと約束になります。 – Li357
@OFSTTP参照してください:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await –