2 回答

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個贊
這個函數(shù)的第二個參數(shù)為回調(diào)函數(shù)(調(diào)用的時候?qū)懩涿瘮?shù)就行了,手機(jī)回答沒辦法給你寫代碼)
這個回調(diào)函數(shù)的參數(shù)就是你要return的對象 。
調(diào)用大概是這樣 gen(data,(res)=>{console.log(res)})
函數(shù) 在修改后面加個cb&&cb(rest)
-----補(bǔ)充
函數(shù)修改
_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);
})
}
}
//調(diào)用
this._genResult(data, (rest) => {
console.log(rest);//
this._genResult = rest; //建議你換個名字來接收這個函數(shù)
});

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個贊
Promise.all()
了解一下。
const results = Promise.all(list.map(item => getSongVkey(item.songmid)))// results 是一個數(shù)組
注: 你的 getSongVkey
方法應(yīng)該返回的是一個 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)
})
添加回答
舉報