これがなぜ機能しないのか分かりません。 LOADでネストされた非同期/待機ノードノード
module.exports = async function() {
try {
await load();
} catch (ex) {
console.log(ex);
logger.error(ex);
}
};
async function load() {
return await new Promise((resolve, reject) => {
TableImport.findAll().then((tables) => {
for (let table of tables) {
await loadData(table.fileName, table.tableName);
}
resolve();
}).catch(function (err) {
reject(err);
})
})
};
async function loadData(location, tableName) {
return await new Promise(function (resolve, reject) {
var currentFile = path.resolve(__dirname + '/../fdb/' + location);
sequelize.query("LOAD DATA LOCAL INFILE '" + currentFile.replace('/', '//').replace(/\\/g, '\\\\') + "' INTO TABLE " + tableName + " FIELDS TERMINATED BY '|'").then(function() {
resolve(tableName);
}).catch(function (ex) {
reject();
});
});
};
AWAITは述べ失敗:私は子供のロード処理にAWAITを行い、親機能を持っている...順番にLOADプロセスは、別のはとても基本的に、このように...と呼ばれるloaddataのを待って呼び出します。
await loadData(table.fileName、table.tableName); SyntaxError:予期しない識別子
明らかに、非同期の範囲について何か分かりません!
「return await ...」を行う理由はありません。ただ約束を返す。また、既存の約束を巡って新たな約束を守るという約束のアンチパターンを避けるべきである。 – jfriend00