[quote=引用 6 楼 a0356 的回复:] 楼主是怎么解决的啊
楼主是怎么解决的啊
确认了,是因为你的 this._normalizeSongs() 返回的不是Promise对象,而是先返回一个空数组[],之后再通过ajax的异步操作对这个空数组添加元素。 不是Promise对象就不能通过 await 等待ajax的异步操作。ajax的异步操作要在当前程序线程执行完之后才执行。 这样 res.concat(list) 与res合并的就是空数组 [] console.log("111",list)输出的也是[]。控制台看到111下面是个[]了么? 你能在控制台看到list有数据是因为在用console.log()输出数组或对象时,对象(数组)的属性是折叠不显示的。 如果你在console.log()输出之后改变了对象(数组)的属性,也就是ajax的异步操作对这个空数组添加元素,当你点击三角展开属性时,会重新读取对象(数组)当前的属性,也就是显示出来的是你点击三角展开时的属性,而不是执行console.log()时的属性。 如果用console.log(JSON.stringify(list));以字符串方式输出就会看到list当前的值。
res.concat() 不是异步函数,不需要用 await 调用啊。
87,997
社区成员
224,709
社区内容
加载中
试试用AI创作助手写篇文章吧