console.log出来的信息不一定是真的
一、问题
拿接口取值,明明this.props.chartsValue[0]已经返回json数据,结果this.props.chartsValue[0].history报错:无法获得undefined数据的history属性!...
二、原因
数据操作,尤其是取值操作是有时间过程的。console.log出来的信息不代表是此刻变量的数据值(可能是在数据传进来之前就log了),除非一直console.log,才能看到信息从无到有的过程。
三、解决
做数据判断处理,确保在准确拿到值以后,再进行相关操作。
const obj = this.props.chartsValue;
var time = [], value = [];
if(obj&&obj[0]) { //数据判断处理
var arr = obj[0].history;
arr.map((item, i) => {
time.push(item.time);
value.push(item.value);
});
console.log(value);
}
进阶
一、问题
已做数据判断处理,但无log信息显示:
if (storage.cache.user_1001) {
console.log(storage.cache.user_1001);
}
二、原因
数据的加载过程需要时间,而外层的事件是单次触发事件(即,没有持续的监听数据变化),导致执行到数据判断时,判断没有信息,故不执行log语句。
三、解决
延时异步执行(async action),成功获取数据。
setTimeout(() => {
console.log(storage.cache.user_1001);
}, 500);
附:
async 函数的使用(http://es6.ruanyifeng.com/#docs/async)
console.log出来的信息不一定是真的的更多相关文章
- 微信小程序为什么看不到所有的console.log()的日志信息
记录一个巨傻无比的问题 1.在首页的onLoad()函数里面,加了地理位置的加载,并打印到控制台上,可是今天就是没出现 2.然后纳闷的很久,各种google,发现没有人遇到这个问题 3.再然后,我就看 ...
- javascript的console.log用法
f1.html代码 <iframe id="frame2" name="frame1" src="ww.html"></i ...
- Vue根据URL传参来控制全局 console.log 的开关
如果你的项目中console.log了很多信息,但是发到生产环境上又不想打印这些信息,这时候就需要设置一个全局变量,如:debug, 用正则匹配一下参数: const getQueryStr = (n ...
- 手机端打开调试工具,模拟console.log
将下列代码考入需要调试页面即可 <script src="//cdn.jsdelivr.net/npm/eruda"></script> <scrip ...
- console.log等不能打印全部数据/信息
有时候console.log在chrome调试控制台打印不全,如下: 这个时候,我们可以点击进去:用watch 工具,添加变量,右击copy value 选项:
- firefox的console log功能
http://www.ruanyifeng.com/blog/2011/03/firebug_console_tutorial.html Firebug是网页开发的利器,能够极大地提升工作效率. 但是 ...
- Javascript的console.log()用法
Firebug & Chrome Console 控制台的一些其他功能console.log(object[, object, ...])使用频率最高的一条语句:向控制台输出一条消息.支持 C ...
- console.log的应用
这两天在学javascript,但是有个问题老是觉得很疑惑,那就是这两个表达式到底有啥区别,虽然结果输出都差不多,但是我想这个两个表达式被开发出来,肯定是有意义的吧!哪位高手解答下吧!Thanks i ...
- 前端不为人知的一面--前端冷知识集锦 前端已经被玩儿坏了!像console.log()可以向控制台输出图片
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...
随机推荐
- TCP的超时与重传
一.引言 对于每个TCP连接,TCP管理4个不同的定时器 重传定时器用于当希望收到另一端的确认. 坚持 (persist) 定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口. 保活 (ke ...
- 1.ajax简单实现异步交互
效果:点击获取信息 testAjax.jsp: <%@ page language="java" contentType="text/html; charset=U ...
- Requests库请求网站
安装requests库 pip install requests 1.使用GET方式抓取数据: import requests #导入requests库 url="http://www.cn ...
- NameError: name 'unicode' is not defined
更改Unicode为str 然后重新setup install
- mocha测试框架
中文翻译文档:https://www.jianshu.com/p/9c78548caffa 阮一峰:http://www.ruanyifeng.com/blog/2015/12/a-mocha-tut ...
- telent三种认证及vlan简单划分
实验一 telent三种认证方式登录 实验拓扑图如下: 操作过程: 1.认证模式为none R1操作: 1.system-view进入系统试图2.telnet server enable开 ...
- python学习 条件控制
if - else if 条件a : 内容a else : 内容 非a if - elif - else if 条件a : 内容a elif 条件b: 内容b-a else : 内容 非(a∪b) ...
- Java - 自定义异常(尚学堂第六章异常机制作业计算平均数)
编写一个计算N个学生分数平均分的程序.程序应该提示用户输入N的值,如何必须输入所有N个学生分数.如果用户输入的分数是一个负数,则应该抛出一个异常并捕获,提示“分数必须是正数或者0”.并提示用户再次输入 ...
- Linux 中的rsh,ssh
第一部分 rsh 的安装与配置 http://www.ttlsa.com/linux/configure-rsh-rcp-scp-on-centos/ http://www.ahlinux.com/s ...
- 汉诺塔问题java实现
问题描述 三个柱子,起初有若干个按大小关系顺序安放的盘子,需要全部移动到另外一个柱子上.移动规则:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘. 解题思路 使用递归算法进行处理,实在理不 ...