Autor Zpráva
Melvil
Profil *
Zdravím,

snažím se přepsat následující skript, abych náhodná čísla vybírat z API:
        var getRandomDatesInMonth = function(year, month) {
            var dates = [];
            for (var i = 0; i < 5; i++) {
                dates.push(new Date(year, month, Math.ceil(Math.random() * 30)));
            }
            console.log(dates);
            return dates;
        };

Skript jsem tedy přepsal:
        var getRandomDatesInMonth2 = function(year, month) {
            
            var dates = [];
            $.post( "test.php", { year: year, month: month })
            .done(function( data ) {
                $.each(data, function(i, item) {
                    console.log(item.date);
                    dates.push(new Date(year, month, item.date));
                });
            });
            console.log(dates);
            return dates;
        };

Ovšem data, které se mi vrací, jsou rozdílná, níže posílám obrázek z console:


Netušíte prosím kde dělám chybu, aby mi i druhý kód vracel data ve stejném formátu?

Díky moc!
Melvil
Profil *
Koukám že se nezobrazuje obrázek, tady je kdyžtak ibb.co/TRkfdRk

Radek9
Profil
Melvil:
Ajax (už z názvu - Asynchronous JavaScript And XML) je asynchronní. Ten return proběhne dřív než se zavolá ta callback funkce v done. Veškerá práce, kterou potřebuješ s těmi daty dělat, by se tedy měla spouštět až v ní.
Radek9
Profil
(Omylem se mi to poslalo dvakrát.)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0