我正在寻求一些算法建议。让我们说这个想法是你必须做这样的事情:
operation.getAnimal('zebra')
.then(animal => {
return operation.doSomethingWithAnimal(animal)
})
但是,不要只是这样做,你需要为许多不同的动物做这件事。
let animals = ['zebra', 'dog', 'cat', 'fish', 'bird']
Promise.map(animals).then(animalName => {
return operation.getAnimal(animalName)
.then(animal => {
return operation.doSomethingWithAnimal(animal)
})
})
或者您可以这样做:
function props (items, promise) {
let results = {}
_.each(items, item => {
results[item] = promise(item)
})
return results
}
Promise.props(props(animals, option.getAnimal))
.then(gottenAnimals => {
return Promise.props(props(gottenAnimals, options.doSomethingWithAnimal))
})
第一个例子会让动物做一些事情,其中, 第二个例子将让所有动物随后与它们一起做点什么。
答案 0 :(得分:0)
它们非常相似但具有不同的功能:
第二
Promise.props
的{{1}}才会运行。then
方法可以让您轻松(更清楚地)在所有承诺解决方案之后运行代码第一