javascript - 提升和全局变量
问题描述
如何从此 PouchDB 文档中分配变量“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) {
var username_show=doc.username;
});
}
loadSettings();
alert("The Username="+username_show);
解决方案
您的警报在username_show
未定义时运行,因为它是在承诺的结果中异步分配的。
username_show
在您的 loadSettings 函数中,避免在引用全局变量时使用 var 关键字。
为了在赋值后查看变量,你可以在你的 Promise 中调用一个函数。
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();
推荐阅读
- android - React native 和 native 可以同时访问的存储?
- javascript - ReferenceError:页面刷新后未定义google
- c# - 正则表达式匹配由许多零或空格进行的 1 到 4 位数字
- c++ - 是什么导致“OpenCV(4.0.1)错误:断言失败(m.dims <= 2)”
- tinyos - TinyOS中基本代码的含义是什么
- jquery - 如何使 jQuery AutoComplete 功能在 Durandal 中工作?
- odata - ODATA:“或”运算符的问题
- c++ - Web 服务器如何知道 HTTP 请求何时被完全接收?
- haskell - Haskell:从多个可能中生成一个数组
- python-3.x - Why does function containing "scipy.integration" produces some wrong results together with correct?