2 回答
TA贡献2003条经验 获得超2个赞
这个函数的第二个参数为回调函数(调用的时候写匿名函数就行了,手机回答没办法给你写代码)
这个回调函数的参数就是你要return的对象 。
调用大概是这样 gen(data,(res)=>{console.log(res)})
函数 在修改后面加个cb&&cb(rest)
-----补充
函数修改
_genResult(data,cb) {
let rest = []
if(data.zhida && data.zhida.singername) {
rest.push({...data.zhida,...{type: TYPE_SINGER}})
}
if(data.song) {
let promise = this._normalizeSongs(data.song.list)
promise.then((res) => {
console.log(res)
/* rest = rest.concat(res)
this.result = rest*/
rest = rest.concat(this._normalizeSongs(data.song.list))
cb&&cb(rest);
})
}
}
//调用
this._genResult(data, (rest) => {
console.log(rest);//
this._genResult = rest; //建议你换个名字来接收这个函数
});
TA贡献1829条经验 获得超13个赞
Promise.all()
了解一下。
const results = Promise.all(list.map(item => getSongVkey(item.songmid)))// results 是一个数组
注: 你的 getSongVkey
方法应该返回的是一个 Promise
对象.
参考如下:
MDN
let p1 = new Promise((resolve, reject) => {
resolve('成功了')
})
let p2 = new Promise((resolve, reject) => {
resolve('success')
})
Promise.all([p1, p2]).then(results => {
console.log(results)
}).catch(error => {
console.log(error)
})
添加回答
举报