我正在努力减少对多个功能的需求,尤其是因为许多功能都具有promise
的功能。但是,我希望添加一个基于props
的父母条件。
例如,我有一个功能
example
.doSomething()
.then(something => {
example.createSomething(something)
});
但是如何添加将.doSomething()
从props
的{{1}}更改为somethingElse
的条件?
因此,如果.doSomethingElse()
将会是
somethingElse === true
答案 0 :(得分:2)
我在手机上写这个不怪我,以后可以整理一下。
Promise.resolve(somethingElse ? example.doSomethingElse() : example.doSomething())
.then(...
如果您认为写两次example
很繁琐
Promise.resolve(example[somethingElse ? "doSomethingElse" : "doSomething"]())
.then(...
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
通过@Phil
如果两个(所有)函数均返回Promise
可以简单地做
example[somethingElse ? "doSomethingElse" : "doSomething"]().then(...
请注意,这意味着以上Promise.resolve
甚至可以处理非Promise返回值
答案 1 :(得分:0)
您可以使用Promise.all方法
let cleaRoom = function(){
return new Promise(function(resolve, reject){
resolve('room is cleaed')
})
}
let removeGarbage = function(message){
return new Promise(function(resolve, reject){
resolve(message + ' garbage is removed')
})
}
let wonIcecream = function(message){
return new Promise(function(resolve, reject){
resolve(message + ' won the icecream');
})
}
Promise.all([cleaRoom(),removeGarbage(),wonIcecream()]).then(function(){
console.log('finished all');
})