const that = this let retObj = {} let codeData = [] codeList.forEach((ele,index)=>{ retObj[ele.code] = '' retObj[ele.code] = that.getDataOne(ele.code,(res)=>{res?codeData.push(res) : '';console.log(res)}) }) Promise.all(Object.keys(retObj)).then((res)=>{ that.setData({ codeData:codeData, }) }) 如何更改使得getDataOne的promise返回参数在Promise.all范围内
时间: 2024-04-22 15:24:05 浏览: 106
要使得`getDataOne`的 Promise 返回参数在 `Promise.all` 范围内,可以使用 `Promise.resolve()` 包装 `that.getDataOne()` 的返回值。这样可以将返回的结果转换为一个 Promise 对象,然后将该对象赋值给 `retObj[ele.code]`。这是修改后的代码示例:
```javascript
const that = this
let retObj = {}
let codeData = []
codeList.forEach((ele,index)=>{
retObj[ele.code] = Promise.resolve('').then(() => {
return that.getDataOne(ele.code,(res)=>{res?codeData.push(res) : '';console.log(res)})
})
})
Promise.all(Object.values(retObj)).then((res)=>{
that.setData({
codeData: codeData,
})
})
```
这样,`Promise.all` 将会等待所有 `getDataOne` 的 Promise 对象都完成后再执行后续操作。
阅读全文