javascript - Javascript-全局变量值未正确反映在代码块之外
问题描述
我已将全局变量(布尔值)设置为 false,然后在代码块中将其设置为 true,然后导出此变量以编写单元测试。
我确定我已经点击了代码,但我仍然看到该值是错误的!!!
这是代码片段
var bWrittenRegistry = false;
function setOrUnsetRegistry(regValue){
let promise = new Promise(function(resolve, reject) {
resolve((async () => {
if(somecondition){
regedit.putValue({
'HKLM\\System\\CurrentControlSet': {
'something': {
value: regValue,
type: 'REG_SZ'
}
}
},function(err) {//callback
console.log("called");//printed
if (err) {
console.log("Error22" + err);
}else {
bWrittenRegistry = true;
console.log(bWrittenRegistry);// prints true
}
}
);
}
}))();
}
Inside test.spec.js
it('should set or unset unset variable in registry',function(done){
this.timeout(300000);
somefunc.setOrUnsetRegistry(1).then(function(){
console.log(somefunc.bWrittenRegistry);//prints false
expect(somefunc.bWrittenRegistry).to.equal(true);//test fails
done();
})
})
我相信正在发生一些异步的事情,但我希望它必须在回调后打印“真”
解决方案
推荐阅读
- maven - intellji “Maven 项目”工具窗口不显示“依赖项”节点
- node.js - 同步杀死节点中的非子进程
- postgresql - 使用 https 在 openshift 上部署时 Keycloak 无效的重定向 URI
- azure - 从 Azure 中托管的 Kubernetes 访问 Traefik UI
- node.js - 我正在尝试在 Ubuntu 16.04 中安装 nginx,但出现有关语言环境设置的错误
- javascript - 如何显示二十一点牌的洗牌结果?
- android - 根据选定的星期几显示日期
- python-3.x - Apache - sqlite3.OperationalError:尝试写入只读数据库
- sql - 如果一条记录包含某个值,如何排除整个组?
- reactjs - 如何在 React 中多次将数据从父组件传递到子组件?