W jaki sposób mogę sprawdzić czy const test zwrócił true

0

Witam,
w jaki sposób mogę sprawdzić czy

const Test = () => {
return true;
}

zwrócił true, oraz odpalić document, próbowałem tak ale bez skutku

if(Test() == true){
tutaj document
}
1

Pokaż więcej kodu, nie tu leży błąd.

0

Ale na czym dokładnie problem polega ? Alert w poniższym kodzie się wykonuje.

        <script>
            const Test = () => {
              return true ;
            }
            

            if(Test() == true){
              alert('pupa blada');
            }
        </script>

0
katakrowa napisał(a):

Ale na czym dokładnie problem polega ? Alert w poniższym kodzie się wykonuje.

        <script>
            const Test = () => {
              return true ;
            }
            

            if(Test() == true){
              alert('pupa blada');
            }
        </script>

no tak ale w tym już nie działa

const Test = () => {
	const cosik = () => {
		setTimeout(() => {
			$.post(window.location.href + "/test", response => {
				response = JSON.parse(response);

				if(response.ok) {
					return true;
				}else{
					//alert(response.msg);
				}
			});
	

		}, 1000);
	}
	cosik();
}
Test();

if(Test() == true){
 $(document).ready(() => {
});
}
2
$(document).ready(() => {
}

Masz tutaj niepozamykane nawiasy.

0

Na temat odpowiadaj w postach.

W jakim celu masz tam $(document).ready()?

0

próbuje napisać gre przeglądarkową
pierwszy const postem będzie sprawdzał czy wszystko dobrze załadowało, dopiero wtedy odpali dokument który odpowiada za buttony interfejsu

0

Ok.

W jakim celu masz tam $(document).ready()?

0

no do odpalenia interfejsu gry, buttony na które jak klikamy np odpalają inny post.

0

Dochodzimy powoli do pierwszego problemu: gdzie jest napisane, że $(document).ready() coś odpala? :-)

0

przykładowo

$(document).ready(() => {
	$(document).on('keypress', function (event) {
		OdpalamCos();// odpalam sobie innego posta za pomoca klawisza
	});
});
0

gdzie jest napisane, że $(document).ready() coś odpala?

Ale nieważne, ponieważ może to się okazać tylko sporem o semantykę - czy w Twoim oryginalnym kodzie, w funkcji przekazywanej do .ready(), masz jakiś kod? Ponieważ wrzucony przez Ciebie przykład nie zawiera nic.

2

Chcesz zrobić promise'a


const Test = () => {
    return new Promise((resolve, reject ) => {
        setTimeout(() => {
            $.post(window.location.href + "/test", response => {
                response = JSON.parse(response);

                if(response.ok) {
                    resolve(response) ;
                }else{
                    reject(response.msg);
                }
            });

        }, 1000);
    }) ;
}

Test()
 .then(response => {
    // co zrobić kiedy się uda 
 })
 .catch(message => {
    alert(message) ;
 }) ;
0

dobra poradziłem sobie, dzieki

a mam jeszcze jedno da radę tam umieścic 2x const w tym new promise? sprawdzając czy ten pierwszy const sie wykonał?
@TomRiddle

0
Programistyczny napisał(a):

a mam jeszcze jedno da radę tam umieścic 2x const w tym new promise? sprawdzając czy ten pierwszy const sie wykonał?

What? Nie rozumiem pytania, proszę sprecyzuj go lepiej albo daj jakiś przykład.

0
const Test = () => {
    return new Promise((resolve, reject ) => {
        setTimeout(() => {
            $.post(window.location.href + "/test", response => {
                response = JSON.parse(response);

                if(response.ok) {
                    resolve(response) ;
                }else{
                    reject(response.msg);
                }
            });
//jeżeli ten pierwszy test sie wykona odpala ten nizej (tylko jeżeli sie uda)
        setTimeout(() => {
            $.post(window.location.href + "/test2", response => {
                response = JSON.parse(response);

                if(response.ok) {
                    resolve(response) ;
                }else{
                    reject(response.msg);
                }
            });

        }, 1000);
    }) ;
}

Test()
 .then(response => {
    // co zrobić kiedy się uda 
 })
 .catch(message => {
    alert(message) ;
 }) ;
1

Tak na prawdę to lepiej żebyś z tego zrobił funkcję, zamiast lambdy.

function test() {
    return new Promise((resolve, reject ) => {
        setTimeout(() => {
            $.post(window.location.href + "/test", response => {
                response = JSON.parse(response);

                if (response.ok) {
                  // umieść cały kod który chcesz wykonać po "wykonaniu się testu" tutaj, 
                  // np kolejny setTimeout, $.post tutaj
                } else {
                    reject(response.msg);
                }
            });
        }, 1000);
    }) ;
}

test()
 .then(response => {
    // co zrobić kiedy się uda 
 })
 .catch(message => {
    alert(message) ;
 }) ;
0

#edit, działa moja wina, nie dodałem echo json encode w game.php

dzięki wielkie!

0
Programistyczny napisał(a):

#edit, działa moja wina, nie dodałem echo json encode w game.php

dzięki wielkie!

Matko boska nie pisz w php. Robisz sobie krzywdę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1