2016-04-24 8 views
0

を約束するには、このパラメータをバインドします。ここJavascriptを - ...私は約束する。このparametterをバインドするためのアプリのために必要があるだろう、と私はこれを行う方法を見つけることができない

は私がしたい正確に何でありますdo:

var myPromise = new Promise((resolve, reject) => { 
    console.log(this); 
}); 
myPromise.then(); 

私は "これ"が私が望む価値を持っていたいと思います。私はそれを外に定義する必要があるので。

可能ですか?

注:それはコードが本当に重くなりますので

var myPromise = (that) => { 
    return new Promise((resolve, reject) => { 
     console.log(that); 
    }) 
} 
myPromise().then(); 

:私はこのソリューションを避けるためにします。

+0

私はあなたの質問をしません。あなたが提示したコードがすでにあなたが望むものを正しく実行していれば、何が問題なのですか? – Bergi

答えて

2

アロー機能を使用すると、で指定されたバインドを持っているしたい場合は、「この」結合、thus it gets "this" from the enclosing context.

、あなたがbindを使用してみてください字句があります。例コード:

new Promise(function(resolve, reject) { 
    console.log(this); 
}.bind(that)); 
+0

こんにちはJakubRożek。あなたの答えをありがとう。しかし、私にはうまくいかない。私はこれを試しました: var that = "bloublou"; var p = new Promise(機能(解決、拒否){ console.log(this); } .bind(that)); p.then(); しかし、 "bloublou"という文字列ではなく約束を記録しています – Poyoman

+0

ここでうまく動作します。あなたはコンソールで正しい行を読んでいますか?それはプロミスを返しますが、コンソールの出力は望ましい "this"です。しかし、bindを使って文字列を渡す場合は、console.log( "" + this);を実行する必要があります。 –

+0

ああ、そうだよ!あなたの答えをありがとう。 – Poyoman

関連する問題

 関連する問題