注:AngularJSに固有のHow to always run some code when a promise is fulfilled in Angular.jsという重複した質問はありません。Javascript:約束が満たされた場合、同じ関数を呼び出す
私は、jQueryのdoneやAngularJSのfinallyのようなものを探しています。
私は、解決または拒否される約束を持っています。それが解決されたか否かにかかわらず、これと同じ機能を実行したいと思います。
var myPromise = new Promise(function(resolve, reject) {
resolve('Success!');
if(something) {
resolve('ok');
} else {
reject('not ok');
}
});
myPromise.then(function(data) {
var x = 1;
var y = 2;
console.log(data);
}, function(data) {
var x = 1;
var y = 2;
console.log(data);
});
上記のコードは動作します。問題は、同じ関数を2回コピーしていることです。
myPromise.then(doWork, doWork);
の、一度関数を記述し、そして...
- :私は、私はこのような名前の関数かもしれない知っている:
var myPromise = new Promise(function(resolve, reject) { ... }); myPromise.then(doWork, doWork); function doWork(data) { var x = 1; var y = 2; console.log(data); }
をしかしへの道があります場合、私は思ったんだけど名前付き関数の代わりに匿名関数を使用します。
詳細<3 – evilReiko