forループにif文を追加すると処理が順番に実行されない

Javascript初学者です。非同期処理を勉強中ですが難しいです。。。
以下のコードを作成したものの、
for (const control of controls) にあるif文が、await client.record.updateRecord が完了する前に
for (const control of controls)のループで先に実行されてしまいます。

if文を外すと、順番に動きます。
恐れ入りますが、何が間違っているのか、修正点をご教示いただけないでしょうか。
なお、controlsは、下記のように各要素をオブジェクトとした配列です。
const controls = [
{ makeDocFCD: “種類1”, setFCD: [“添付書類1”, “添付書類1_別紙”], filesIndex: [0, 1] },
{ makeDocFCD: “種類2”, setFCD: [“添付書類3”, “添付書類3_別紙”], filesIndex: [2, 3] },
];

作成したコード

async function registerFilesToRecord(record, files) {
const client = new KintoneRestAPIClient();

// ファイル添付方法(controls)すべてに対して
// makeDocFCD=PDFファイル種別、setFCD=添付ファイルフィールドコード、
// filesIndex=添付するファイルが格納されているfilesの要素番号
for (const control of controls) {
  const {makeDocFCD, setFCD, filesIndex} = control;

  // 指定フィールドが'作成'になっていたら、PDFをレコードに登録する
  if (record[makeDocFCD].value === "作成") {
    // 添付フィールドそれぞれに対し順番に処理を実行
    for (let i = 0; i < setFCD.length; i++) {
      const file = files[filesIndex[i]];
      if (file) {  // 該当するファイルがあるならば
        try {
          await client.record.updateRecord({
            app: kintone.app.getId(),
            id: kintone.app.record.getId(),
            record: {
                [setFCD[i]]: { value: [file] }  // そのフィールドに該当するファイルを登録する
            }
          });
        } catch(error) {
          console.error(`Error updating record : ${error}`);
        }
      }
    }
  }
}

}

if文とはどのif文ですか??

どういう結果になってほしいのにどういう結果になっているとおっしゃってますか??

図などがあるとわかりやすいかもです:eyes:

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。