لقد كنت أبحث في تطوير الإضافات ولاحظت أنه في حالات مثل مترجم ديسكورش، بعد استعادة نموذج الودجيت عبر findAncestorModel()، يتم التحقق من وجود النتيجة قبل المتابعة. أرى هذا يحدث أيضًا في الكود المصدري، مثال:
_getTopicUrl() {
const post = this.findAncestorModel();
return post ? post.get("topic.url") : null;
},
لكن هناك أيضًا حالات لا نتحقق فيها من وجود نموذج السلف، بضعة أسطر أدناه:
const post = this.findAncestorModel();
const controller = this.register.lookup("controller:topic");
return post
.get("topic.postStream")
.filterUpwards(this.attrs.id)
.then(() => {
controller.updateQueryParams();
});
ما مدى موثوقية وجود نتيجة findAncestorModel؟ هل يعتمد ذلك على الودجيت الذي نحن فيه، أم أنه من الممارسات الجيدة دائمًا التعامل مع استجابة فارغة حتى في الحالات التي تبدو فيها غير محتملة للغاية، مثل قائمة المنشورات؟