Javascript: Как изменить переменную в анонимных функциях

0

Привет, ребята, я работаю над новым проектом с js и у меня проблема, поэтому я хотел бы знать, как изменить переменную в анонимных функциях

myFunct : function(){

    var name = "Alexander ";

    if(true)
    {

        db.transaction(function(t){

            name = "Stephane"; //How do i change my variable [name] at this level?

            t.executeSql('SELECT * FROM users',[]);
        });
    }

    return name; //this function returns me Alexander and not Stephane
},
  • 0
    #unclearwhatyoureasking счастливого благодарения
  • 1
    это называется закрытием. имя фиксируется внутри функции и не изменяется вне переменной.
Показать ещё 3 комментария
Теги:

1 ответ

0
Лучший ответ

Функция обратного вызова для db.transact запускается после db.transact функции.

Если вы поместите console.log над строкой, в которой вы измените имя, а одно выше, когда вы вернетесь, вы увидите это.

Если вы хотите вернуть имя в качестве значения, попробуйте вместо этого вернуть обещание, а затем разрешите обещание с именем в качестве значения.

В качестве альтернативы, ваша функция может принять обратный вызов, который будет вызываться со значением после завершения транзакции.

  • 0
    большое спасибо Дэн принц

Ещё вопросы

Сообщество Overcoder
Наверх
Меню