// information 包含数据如下
music_name: "world.execute (me) ;"
music_url: "http://m8.music.126.net/20201207232126/2447857188adb656877bdf273cf6ade6/ymusic/5d00/c10e/74e6/9a2c61348e82ce8196852c6bd7968452.mp3"
// 执行以下语句
console.log(information.music_url)
console.log(information.music_name)
//控制台输出
home.js:29
home.js:30 world.execute (me) ;
怎么回事?把你代码片段发出来看看啊。
你看一下122行,本来以为是异步问题,但是122行还是有小概率打印不出值,因为干扰代码太多,我看不出来了,请你删一些不想干的代码。对于小概率打印不出值,我有个猜测,还是异步的问题。你的这个接口依赖于别的接口的返回值,所有这个接口再别的接口之后返回就有值,之前返回没值
不过为什么输出information就是正常的呢?
可以看见里面的music_url里已经有文本了
if(typeof information.music_url ==='string' && information.music_url.length){ }
先判断下字符串是否存在
console.log(typeof information.music_url);
//打印出来是 String
console.log(Object.prototype.toString.call(information.music_url));
//打印出来是 [object String]
console.log(information.music_url.length);
//打印出来是 0