【问题标题】:passing data of one then to another in promise在承诺中将一个人的数据传递给另一个人
【发布时间】:2017-06-09 07:50:21
【问题描述】:
Promise.all(events)
    .then(data => {
        return events.map(obj => 
            !isEmpty(obj.space) && {space_name: obj.space.name, ...obj}
        )
    })
    .then(data => //how to get resolved data of above's then

    )

我无法将我的数据从第一个传递到第二个,我错过了什么步骤?

【问题讨论】:

  • 此刻您似乎对第一个.then 中的Promise.all(events) - data 的结果无动于衷,这是从中解析的值。但你对那个论点无能为力。第二个data 中的then 将是events.map... 的结果(我假设events 应该是一组Promises,不会/不应该正常工作)
  • 不应该是data.map而不是events.map吗?
  • how to get resolved data of above's then - 那将是 data 参数 - 你的问题是 events.map 看起来很可疑,因为事件将是一系列承诺,而承诺通常没有属性叫space
  • 我认为您需要在此处发布事件数据。因为如果你真的使用“events.map”,“events”看起来像一个对象,而不是promise数组。但是如果它是错误的(理论上,你需要写“data.map”,而不是“events.map”),我们需要查看事件数据来了解什么是错误的。也许你没有解决承诺。

标签: javascript ecmascript-6 promise


【解决方案1】:
let p1, p2, promiseArr
p1 = new Promise((resolve,reject) => {
    resolve(2)
})
p2 = new Promise((resolve,reject) => {
    resolve(8)
})
promiseArr = [p1,p2]
Promise.all(promiseArr)
    .then(data => 
        data.map(value => 
            value*value
        )
    )
    .then(data =>
        console.log(data)
    )

按预期打印[4, 64]

请再次检查您的代码或发布完整示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多