2

私はまだ、Meteor のパブリッシュ/サブスクライブの側面全体に頭を悩ませようとしています。

これが私が達成しようとしていることの要点です。

サーバー側では、"Meteor.startup" でブログから RSS フィードを取得します。この部分は機能します。基本的に、私のサーバーコードは次のようになります

Items = new Meteor.Collection "items"

Meteor.startup ->
  ..
  .. # code for fetching the RSS feeds
  ..
  for each feed
    Items.insert
      title:item.title

  console.log Items.find().count() # this returns the correct count

  Meteor.publish "items", ->
    Items.find()

「アイテム」を公開したので、クライアントから購読したいと思います。

Items = new Meteor.Collection "items"
Meteor.subscribe("items")
console.log Items.find().count()

しかし、上記では「0」が返されます。

私は何を間違っていますか?

4

1 に答える 1

3

サブスクライブは非同期です。コレクション内のデータにアクセスする前に、コールバック関数を渡してサブスクリプションが完了するのを待つ必要があります。Javascript での例:

Meteor.subscribe('items', function () {
    console.log(Items.find().count());
});
于 2012-10-28T00:12:53.617 に答える