No data or undefined when call from the frontend

Here is
Backend Code sample, because it is a complex function:

export async function calculTarif(selChalet, selFrom, selTo, selFromNum, selToNum, isMember, isInviter, isVisiteur, selFamMbr, selFamInv, selFamVis, member) {

...
    return await wixData.get("chalets", selChalet)
        .then(rowChalet => {
            if (rowChalet !== null) {
                 typeChalet = rowChalet.typeChalet;
                return typeChalet;
            }
            return typeChalet
        })
        .then(async typeChalet => {
   ...
            while (isPeriodLeft) {
                await wixData.query("saison")
                    .le("fromNum", dateSelFromNum)
                    .gt("toNum", dateSelFromNum)
                    .find()
                    .then(async (saisons) => {
      ...
                        if (saisonCount > 0) {
                            rowsSaison = saisons.items[0];
      ...
                            if (dateSelTo <= saisonDateTo) {
...
   
                            let nbJours = await numberOfDays(lineDateFrom, lineDateTo);

                            if (isMember) {
   ...
                                let tarif = await wixData.query("tarif")
                                    .eq("saison", saisons.items[0]._id)
                                    .eq("typeChalet", typeChalet)
                                    .eq("famille", selFamMbr)
                                    .eq("group", groupSelected)
                                    //        .include("saison", "typeChalet", "group")
                                    .find();

      ...
                                if (rowTarifCount > 0) {
                                    subTotal = await calculateSubTotal(rowTarif.prixDay, rowTarif.prixHebdo, rowTarif.prixMensuel, nbJours);
...
                                    periodTarif.push(tbl);
      ...                          }
                            }
   ...
               return periodTarif;
        })
        .then(period => {
   ...                         return period;
                        })
                        .catch((err) => {
                            console.error(err);
                            const response = {
                                "isOK": false,
                                "total": 0,
                                "period": [{ "?????": "null" }]
                            };
                            return period;
                        })
                })

                .catch((error) => {
                    console.error(error);
                    return response;
                });
        })
        .catch((error) => {
            console.error(error);
            return response;
        });
}


And the front end code:

export async function displayTarif() {
    let dollar = new Number();
    dollar = 0;

    if (selChalet !== null && selFrom !== null && selTo !== null && selFromNum !== null && selToNum !== null && isMember !== null && isInviter !== null && isVisiteur !== null && selFamMbr !== null && selFamInv !== null && selFamVis !== null && member !== null) {
        //let response = await 
        return await calculTarif(selChalet, selFrom, selTo, selFromNum, selToNum, isMember, isInviter, isVisiteur, selFamMbr, selFamInv, selFamVis, member)
            //  })
            .then((period) => {
                return period;
            })
            .then(zzz => {
                return getTarifReserv(member)
                    .then(response => {

...
                        dollar = cout;

                        if (dollar === 0 || dollar === undefined || dollar === null) {
                            $w('#tarif').text = $w('#adminTarif').text = "?";
                        } else {
                            let tmp = dollar.toLocaleString();
                            $w('#adminTarif').text = $w('#tarif').text = tmp;
                        }
                        return response;
                    })
            })
            .then((period) => {
                return SaveRqustTarifItems(selChalet, selFrom, selTo, selFromNum, selToNum, isMember, isInviter, isVisiteur, selFamMbr, selFamInv, selFamVis, member)
                    .then((period) => {
                        return period;   
                    })
            })
            .catch((err) => {
                console.error(err);
            });

    }
    if (dollar === 0 || dollar === undefined || dollar === null) {
        $w('#tarif').text = $w('#adminTarif').text = "?";
    } else {
        let tmp = dollar.toLocaleString();
        $w('#adminTarif').text = $w('#tarif').text = tmp;
    }
    return;
}