1 回答
TA贡献2041条经验 获得超4个赞
好吧,在我自己进行了一些进一步的研究之后,我放弃了对此用例使用Promises的方式,而是使用RxJS的Observables。
尽管我必须进行一些细微的修改,但它几乎可以按照我想要的方式解决了我的问题。
对于那些偶然发现我的问题并为我面临的同样问题寻求解决方案的人:
承诺只能被解决或拒绝一次,据我所知,除非Promises函数完成运行,否则您无法使用相同的代码创建一个新的(如果我对此代码有误,请更正我,我真的很感激,这只是基于我个人的观察和猜测),除非您创建了一个全新的Promise,否则您将无法再次解决它。
在这种情况下,我们将根据侦听器(或js中所谓的内容)做出Promise,因此,除非删除侦听器,否则答应中扭曲的函数将无法完成运行(我认为),并且您不会创建一个新的Promise。
另一方面,Observables可以根据需要进行多次重用,有关此内容可在Promises和Observables之间进行比较,请参见此内容,这是一个很好的教程,可以帮助您了解Observables以及如何使用它们。见这对如何安装RxJS节点。
但是,请注意-由于某种原因,一旦您订阅了一个observable,传递给observable.subscribe()的函数中使用的变量将保持不变,它不会随着您对观察者路由的每个新请求而更新。因此,除非找到一种方法将可更改的变量传递到可观察的定义内的observer.next()函数中,否则您将得到错误的结果。
添加回答
举报
