私はMeteorJSを完全に新しくしています。デモを見て回っているだけです。本当に基本的なものが欠けている可能性があります。 私はmeteorとangular-ui-routerを使用しています。コントローラにデータをロードする状態から始めると、DDPがまだ初期化されていないため、問題が発生します。これは、ルーティング設定のMeteor: How can I tell when the database is ready?MeteorJSの接続遅延の問題
関連部分で説明したものと同様である:
resolve: {
location: ($stateParams) => {
console.log('find', $stateParams);
let handle = setInterval(function() {
console.log(Meteor.status().connected, Meteor.status().status);
console.log(!!Locations.findOne({code: $stateParams.code}) ? 'found' : 'not found');
}, 100);
setTimeout(function() {
clearInterval(handle);
}, 2000);
console.log(Meteor.status().connected, Meteor.status().status);
return Locations.findOne({code: $stateParams.code});
}
}
と出力が
false "connecting"
false "connecting"
not found
true "connected"
not found
true "connected"
not found
true "connected"
found
true "connected"
found
私の質問は次のとおりです。 は私が正しく理解しているここでの問題予想どおりに動作するためには、次の順序で実行する必要があります。
- ウェブソケット接続が開始され
- ウェブソケット接続が
- minimongoを使用する準備ができている
- リフレッシュcollection.findOne
と4は3の前に実行されているのですか?もしそうなら、推奨される回避策は何ですか?
クロスポスト:https://github.com/meteor/meteor/issues/9127
あなたは暗黙のうちに、私が求めているものを確認するように見えます、あなたは明示的にそれをしていただけますか? には、同じことを行う非同期メソッドがあります。 mySub.onReady(コールバック)? – ilj