4
我還在學習的角度觀察到的2,和一直無法弄清楚如何我的代碼轉換成角1角2在角1轉換承諾觀察到在角2
function promiseFunc() {
var deferred = $q.defer();
$http.post(url, something)
.then(function (response) {
if (response === 1) deferred.resolve(response.data);
else deferred.reject();
}).catch(function (e) {
deferred.reject(e);
});
return deferred.promise;
}
任何人都可以告訴我如何我可以轉換此代碼角2可觀察?
編輯:
而且如果http.post是可選的什麼?
function promiseFunc(param1) {
var deferred = $q.defer();
if (param1 === 1) {
deferred.resolve(1);
} else {
$http.post(url, something)
.then(function (response) {
if (response.x === 1) deferred.resolve(response);
else deferred.reject();
}).catch(function (e) {
deferred.reject(e);
});
}
return deferred.promise;
}
我在可觀察到的是缺少的是調用解析和拒絕的能力。它能以可觀察的方式完成嗎?
的問題是,你是依靠[遞延反模式](https://github.com/petkaantonov/bluebird/wiki/Promise-anti-patterns #延遲反模式),這不是Promise/A +固有的,並且不能直接轉化爲觀測值(他們不會將它稱爲反模式)。 – estus