तो मैं Meteor
में ES6 उपयोग शुरू कर दिया गया है, लेकिन जाहिरा तौर पर अगर आप एक तीर समारोह के साथ Meteor.publish
सिंटैक्स का उपयोग करने का प्रयास करें, this.userId
अपरिभाषित है, जबकि यदि आप इसे एक साथ उपयोग नियमित function(){}
this.userId
पूरी तरह से काम करता है, मुझे लगता है कि एक प्रकार की पारदर्शी प्रक्रिया है जो इसे अलग करती है, userId
पर, लेकिन यह अनुमान है कि क्या कोई वास्तव में क्या हो रहा है?ES6 तीर समारोह Meteor.publish में इस के दायरे से बदल रहा है
Meteor.startup(function() {
Meteor.publish("Activities", function() { //with function
console.log(this.userId); //TS8vTE3z56LLcaCb5
});
});
Meteor.startup(function() {
Meteor.publish("Activities",()=> { //with arrow function
console.log(this.userId); //undefined
});
});
एमडीएन से: * "एक तीर फ़ंक्शन अभिव्यक्ति (जिसे वसा तीर फ़ंक्शन के रूप में भी जाना जाता है) में फ़ंक्शन अभिव्यक्तियों की तुलना में एक छोटा वाक्यविन्यास होता है और **' '' 'मान को मूल्यवान रूप से बांधता है। '* Https: //developer.mozilla .org/en-US/docs/web/जावास्क्रिप्ट/संदर्भ/कार्य/तीर_फंक्शन –
@ फ़ेलिक्सक्लिंग यह एक डुप्लिकेट प्रश्न कैसे है? – ncubica
यह बताता है कि तीर कार्यों में यह 'कैसे' काम करता है। –