我有一个函数calc(),它可能有以下内容:
calc() {
...
if (condition) {
return new Promise(...) ; // promise1
}
else {
return new Promise(...); // promise2
}
}
函数调用它将以不同的方式执行这两个承诺:
calc().then()=>{ do something; } // if promise 1;
.then()=>{ do nothing; } // if promise 2;
有可能吗?
我问的原因是calc()本身是一个异步函数。它订阅了一些流程,如:
calc () {
subscribe(()=> { do something and need to flash upper caller that is done;}
}
因此,如果calc()没有从另一个进程接收到信号,它将不会产生结果,并且上层调用程序确实拥有继续处理所需的数据。
1条答案
按热度按时间yzuktlbb1#
假设您同步地知道条件的结果。为什么不将承诺封装在一个对象中,并使用诸如id之类的属性来表示返回了哪个承诺?
然后,您可以根据返回的id决定如何处理承诺。