Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как правильно передать значение переменной? (https://javascript.ru/forum/misc/15408-kak-pravilno-peredat-znachenie-peremennojj.html)

kentnsk 25.02.2011 10:34

как правильно передать значение переменной?
 
Здравствуйте.

написал такой код:
window.onload = (function() {
  mailru.loader.require('api', function() {
    mailru.app.init('438529345');
    ...      	
    perm_ok = 0;
    mailru.common.users.hasAppPermission(function(permissions) {
      if (permissions.widget == 1) {
        perm_ok++;
        alert ("1 - " + perm_ok);
      }
    }, 'widget');
    mailru.common.users.hasAppPermission(function(permissions) {
      if (permissions.notifications == 1) {
        perm_ok++;
        alert ("2 - " + perm_ok);
      }
    }, 'notifications');
    alert ("finish - " + perm_ok);
  });
});


задача, чтобы после выполнения ф-ций perm_ok == 2, в итоге получаю:
finish - 0
1 - 1
2 - 2

подскажите пожалуйста почему finish - 0? как сделать чтобы было finish - 2?
Всем заранее спасибо.

ksa 25.02.2011 10:44

Цитата:

Сообщение от kentnsk
почему finish - 0?

Вот почитай...
http://javascript.ru/basic/functions#oblasti-vidimosti

kentnsk 25.02.2011 11:04

тогда не понятно почему он выводит "2 - 2", если это локальная переменная...
подскажите пожалуйста каким способом можно добиться "finish - 2"?
Как узнать что в 2-х функциях выполнены нужные мне условия, в данном случае работая со сторонней библиотекой?

Kolyaj 25.02.2011 11:21

Цитата:

Сообщение от kentnsk
подскажите пожалуйста почему finish - 0?

Потому что finish выполняется до того, как выполнятся функции.

kentnsk 25.02.2011 11:25

Цитата:

Сообщение от Kolyaj (Сообщение 93988)
Потому что finish выполняется до того, как выполнятся функции.

подскажите пожалуйста как сделать чтобы сначала выполнились функции, а потом finish? В рамках моего кода.
Буду очень Вам благодарен...

Kolyaj 25.02.2011 11:32

Может почитать документацию по api mailru?

kentnsk 25.02.2011 11:49

Цитата:

Сообщение от Kolyaj (Сообщение 93997)
Может почитать документацию по api mailru?

"Результат возвращается в виде объекта, где ключем является название привилегии, а значением 1 или 0 в зависимости от того, есть привилегия или нет."
но результат возвращается внутри функции mailru.common.users.hasAppPermission(), сама же функция как я понял не возвращает значение...


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