Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Promise. Возвращает только false. (https://javascript.ru/forum/node-js-io-js/64311-promise-vozvrashhaet-tolko-false.html)

thevalakas 02.08.2016 15:29

Promise. Возвращает только false.
 
Есть вот такой код:
function test() {
    return new Promise(function (success, error) {
        if(1 > 0) {
            success(true);
        }else{
            error(false);
        }
    });
}

var check;

test().then(
    check = true,
    check = false
);

console.log(check);


При изменении знака > на < всегда возвращает false.
Почему так?

destus 02.08.2016 17:20

test().then(
    function() {check = true},
    function() {check = false}
);

thevalakas 02.08.2016 18:00

Цитата:

Сообщение от destus (Сообщение 424096)
test().then(
    function() {check = true},
    function() {check = false}
);

Выводит undefined

destus 02.08.2016 18:15

<script src="https://cdnjs.cloudflare.com/ajax/libs/co/4.1.0/index.min.js"></script>
	<script>
	function test() {
		return new Promise(function (success, error) {
			if(1 > 0) {
				success(true);
			}else{
				error(false);
			}
    });
}
	co(function* (){
		var check;
		
		check = yield test();
		
		alert(check);
	}).catch(e => alert(e))
	</script>

Erolast 02.08.2016 20:52

Цитата:

var check;

test().then(
check = true,
check = false
);
Это еще что за хрень? В метод then нужно коллбек передавать, а ты передаешь результат выражения check = true, то есть, просто true.

var check;
console.log(check = true);

thevalakas 03.08.2016 07:35

Цитата:

Сообщение от Erolast (Сообщение 424110)
Это еще что за хрень? В метод then нужно коллбек передавать, а ты передаешь результат выражения check = true, то есть, просто true.

var check;
console.log(check = true);

Даун


Часовой пояс GMT +3, время: 01:08.