1

クラスコンストラクタ内でES6解体を使用しようとしていますが、不明なトークンエラーが発生しています。ここでは例です:ES6:コールコンストラクタ内で解体できない

//輸入/サーバー/ - と-b.js

class A { 
    constructor(id) { 
    // make MongoDB call and store inside this variable 
    let { 
     firstName: this._FirstName // => Throws here 
    } = CollectionName.findOne({userId: id}); 
    } 
} 

export class B extends A { 
    constructor(id) { 
    super(id); 
    } 
    get FirstName() { 
    return this._FirstName; 
    } 
} 

//輸入/サーバー/ test.js

import { B } from 'imports/server/a-and-b.js' 

const b = new B('123') 

const FirstName = b.FirstName; 

同じ解体が外に動作しますクラス:

//別の-test.js

// make MongoDB call and store inside this variable 
let { 
    firstName: FirstName // works fine 
} = CollectionName.findOne({userId: id}); 

答えて

4

私はこれがそうのように行うことができますが見つかりました:

constructor(id) { 
    // make MongoDB call and store inside this variable 
    ({ firstName: this._FirstName } = CollectionName.findOne({userId: id})); 
} 
4

構文が正しくありません。あなたがしようとしていることは不可能です。 findOneの方法は、あなたがこれを行う必要があり、同期であると仮定すると:

constructor(id) { 
    // make MongoDB call and store inside this variable 
    let { firstName } = CollectionName.findOne({userId: id}); 
    this._FirstName = firstName; 
    } 
+1

それは、これは 'this._Firstname =を聞かせてやろうとしているのようになります。 .. ' - 無効な構文 –

関連する問題