注意:不是How to always run some code when a promise is fulfilled in Angular.js的重複問題,因爲這是針對AngularJS的。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);
});
上面的代碼有效。問題是我正在複製相同的功能兩次。我知道我可以有一個名爲函數是這樣的:
var myPromise = new Promise(function(resolve, reject) { ... });
myPromise.then(doWork, doWork);
function doWork(data) {
var x = 1;
var y = 2;
console.log(data);
}
但我不知道是否有一種方法:
- 編寫函數一次,而不是
myPromise.then(doWork, doWork);
,和.. - 使用匿名函數而不是命名函數。和..
偉大的細節! <3 – evilReiko