javascript - Observables 和 Sequelize promise

标签 javascript promise sequelize.js observable

早上好

我在理解 Sequelize 和 RxJS 如何协同工作时遇到问题。 根据我的阅读,Sequelize 使用了 promises。现在,如果我想加载一个列表并在每次在我的数据库中找到一个元素时进行渲染,会发生什么? 我正在使用 sequelize 中的语法:

User.findAll().then()

但我想要的是将它包裹在一个可观察的对象中并能够使用:

var getAllUsersObservable = Rx.Observable.create(function (obs) {
  obs.next(user)
}

然后我的观察者只想打印新用户。

var getAllUsersObserver = {
  next: console.log(user)
}

对我来说,这行不通,因为 Sequelize 只会在找到所有用户后将我所有用户的列表放入其 promise 中。我的问题是:我如何同时使用这两个来打印我的用户,一次一个?

提前致谢

最佳答案

我还没有试过这个,但我确实有同样的问题,稍后会调查。但看起来您确实可以从 promise 中创建一个 Observable 对象。看到这个:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/promises.md

我认为做这样的事情是将 Observables 和 promises 结合在一起的最佳方式。

let observable1 = Rx.Observable.fromPromise(User.findAll());

observable1.subscribe(...);

您可能必须执行一些其他 RX 操作,例如 Map、SwitchMap 等,但看起来这可能会让您更接近您所追求的目标。

希望这对您有所帮助!

关于javascript - Observables 和 Sequelize promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46523077/

相关文章:

javascript - Azure:无法在exports.post调用未定义的方法 'then'

node.js - 在 forEach 循环中运行 sequelize 查询。无法处理结果

node.js - Sequelize Op.or within Op.and 用于嵌套操作

javascript - Requirejs:AMD 模块未定义

javascript - Web Audio API 如何命名声音

javascript - 如何自动清除翻转动画事件?

node.js - NodeJS 执行 then() 之后的下一个进程

javascript - 将对象转换为数组

javascript - Node.js 拦截 Promise 并阐述 Response

javascript - 是否有扩展功能的 promise 标准,如 .all()、.finally() 等