0
現在、短い文字列をキーとして格納しています。Async Awaitが期待どおりに機能しない
これらのキーは、ラベルである長い値に対応します。
対応するキーの長い値を更新しようとしています。
しかし、console.log(レコード)は常に最初に実行され、内部のlog文は実行されないものが実行されます。変更されていないレコードを常にgetRadioValues関数呼び出し側に送信します。
対応するキーが更新された後にレコードを返したいとします。
export const getRadioValues = (record: IRecordInput) => {
const singleSelectKeys = ['Race', 'DeathWas', 'MannerOfDeath'];
singleSelectKeys.forEach(async key => {
if (record[key]) {
const dropDownOption = await DropDownOptions.find({ where: { id: record[key] }}) as IPDFSelect;
record[key] = dropDownOption.dataValues.Text;
console.log(record[key]);
}
});
console.log(record);
return record;
};
'あなたの実際の使用例では受け入れられないかもしれません。' - 受け入れ可能性は無関係です。 'getRadioValues'によって返される結果は非同期であるため、非同期関数として使用する必要があります(約束を返す場合でも' async'でなくてもかまいません)。 –
当初は、Promise以外で提案したのと同じコードを使用しようとしました。すべての機能。非同期が約束を解決するのを待っているのではないでしょうか? –
はい、コールバック内 –