Подъемные и глобальные переменные

#javascript #global-variables #pouchdb

#javascript #глобальные переменные #pouchdb

Вопрос:

Как я могу присвоить значение переменной «username_show» из этого документа PouchDB? Я пробовал технику подъема, но я думаю, что мне нужно вывести глобальную переменную из структуры данных, а затем из функции.

     var db = new PouchDB('myDb');
    var remoteCouch = false;
    var username_show;
    
  function loadSettings(){	    
    var settings = {
    	    _id: "UNa",
    	    username : ""
    }
  
    	   
    db.get('UNa').then(function (doc) {
		var username_show=doc.username; 
		
     	    });
	
  }

  loadSettings();
  alert("The Username=" username_show);  

Комментарии:

1. Во-первых, вы никогда не должны использовать глобальные переменные.

Ответ №1:

Ваше предупреждение выполняется, пока username_show не определено, поскольку оно назначается асинхронно в результате выполнения обещания.

В вашей функции loadSettings избегайте использования ключевого слова var при ссылке на вашу глобальную username_show переменную.

Чтобы просмотреть переменную после присвоения, вы можете вызвать функцию в своем обещании.

 var db = new PouchDB('myDb');
var remoteCouch = false;
var username_show;

function loadSettings(){        
  var settings = {
    _id: "UNa",
    username : ""
  }


  db.get('UNa').then(function (doc) {
    username_show=doc.username; 
    showUsername();
  });

}

function showUsername() {
  alert("The Username=" username_show);
}

loadSettings();