Tôi đang sử dụng các lĩnh vực thông tin trong hệ thống Meteor.users bộ sưu tập được xác định để lưu trữ thông tin về người sử dụng tin nhắn cuối cùng đọc trên tất cả các kênh thông tin liên lạc với cơ cấu như sau:Làm thế nào để chờ đợi trên Meteor.users khi thay đổi lĩnh vực hồ sơ
profile : {
lastMsgRead : [
{channelId: 'YYEBNEI7894K', messageCreatedAt: '14578970667"}
{channelId: 'GERYUE789774', messageCreatedAt: '14578999845"}
]
}
tôi phát hiện ra rằng đọc lĩnh vực lastMsgRead thất bại vì trên máy khách mảng trong vẫn trống tại thời điểm đọc. tôi công bố một cách chính xác lĩnh vực này cho khách hàng thông qua:
Meteor.publish(null, function() {
return Meteor.users.find({}, {fields: {_id: 1, username: 1, emails: 1, profile :1}});
và tôi đọc giá trị của nó từ thư viện khách hàng nằm trong thư mục lib, theo cách này:
var chHistory = Meteor.user().profile.lastMsgRead;
Gỡ rối mã của tôi có vẻ như những thay đổi tôi thực hiện đối với trường hồ sơ chưa được phổ biến cho tất cả khách hàng tại thời điểm tôi đọc chúng. Vì vậy, tôi cần phải chờ đợi cho các thuê bao Meteor.users được sẵn sàng, nhưng tôi không có xử lý của nó ─ bạn nhận được điều này tự động từ khuôn khổ.
Làm thế nào tôi có thể chờ cho thuê bao Meteor.users bị sẵn sàng chưa?
Câu trả lời có giải quyết được vấn đề cụ thể của bạn hay không (đảm bảo rằng trường con được điền trước khi làm việc với nó) phù hợp với bạn? Tôi không chắc chắn câu hỏi hiện tại của bạn (chắc chắn rằng một thuê bao chưa đặt tên đã sẵn sàng) có thể trả lời bằng bất cứ điều gì khác ngoài "Meteor hiện không cung cấp tính năng như vậy". –