2017-01-20 15 views
1

I これはthisbindに関連する他の多くの質問とは異なります。注目すべきはHow to access the correct `this` context inside a callback?オブジェクトのプロパティを使用してコールバック関数を使用して別のプロパティを設定する方法

私はそのオブジェクトのプロパティを使用し、ajax呼び出しを行うオブジェクトに対してメソッドを持っています。私は、その値を新しいプロパティオブジェクトに保存したいと思います。私はどのようにプロパティにコールバック関数を割り当てるか分からない。

コンストラクタ:

congressMember.prototype.getMember = 
function() { 
    govTrack.findRole({ current: true, state: this.state, district: this.district }, function(err, res) { 
    if (!err) { 
    return res.objects[0].person // this won't work 
    } 
    }) 
} 

そして、私は新しいインスタンスを作りたい:var myHouseRep = new congressMember('WY', 1);問題はthisではありませんが、代わりにアウト値を」取得したプロトタイプの

function congressMember(state, district) { 
    this.state = state 
    this.district = district 
} 

方法の "コールバックの"。ここでは、透明なプロセスを維持しようとし

は、第二刺しです:

function foo(state, district, fn) { 
    govTrack.findRole({ current: true, state: state, district: district }, function(err, res) { 
    if (!err) { 
     fn(res.objects[0].person) 
    } else { 
     console.log('error') 
    } 
    }) 
} 
congressMember.prototype.getDetails = 
    function() { 
    _this = this 
    foo(this.state, this.district, function(cb) { 
     _this.details = cb 
    }) 
    } 
+0

どのプロパティを設定しようとしていますか? – Agalo

+0

別のプロパティを追加したいと思います。質問を更新します – icicleking

答えて

0

あなたが値を割り当て、その後、未定義として変数を定義することができます。問題の

var foo; 

function bar(baz) { 
    this.baz = baz; 
    foo = this.baz; 
} 

bar(42) 

console.log(foo) // 42 
+0

これは、あなたの質問が私に少し混乱したので、関数またはコールバックから変数を取得したい場合です。 –

+0

これは私が苦労している値の割り当てです。 – icicleking

0

私の第二の刺しは、実際に私はconsole.og INGメソッドを呼び出した後だったので、私は混乱していた、問題を解決します。

function foo(state, district, fn) { 
    govTrack.findRole({ current: true, state: state, district: district }, function(err, res) { 
    if (!err) { 
     fn(res.objects[0].person) 
    } else { 
     console.log('error') 
    } 
    }) 
} 
congressMember.prototype.getDetails = 
    function() { 
    _this = this 
    foo(this.state, this.district, function(cb) { 
     _this.details = cb 
     console.log(_this) // The object now has the returned value 
         // as a property. 
    }) 
    } 
関連する問題