तुम क्यों flatMapfromPromise की क्या ज़रूरत है पुन: प्रयास करें काम करने के लिए प्राप्त करने के लिए?
आरएक्स fromPromise और पुन: प्रयास
var responseStream = Rx.Observable.just('/error').
flatMap(requestUrl => {
return Rx.Observable.fromPromise(_this.$http.get(requestUrl));
});
responseStream.
retry(3).
subscribe(
function (x) {
console.log('Next: ' + x);
},
function (err) {
console.log('Error: ' + err);
},
function() {
console.log('Completed');
});
मैं औपचारिक पर कटौती करने के लिए चाहते हैं और बस है ('/ त्रुटि' स्थिति 500 रिटर्न):
Rx.Observable.fromPromise(_this.$http.get('error')).
retry(3).
subscribe(
function (x) {
console.log('Next: ' + x);
},
function (err) {
console.log('Error: ' + err);
},
function() {
console.log('Completed');
});
कि दूसरे मामले में XHR कॉल केवल है एक बार निष्पादित
धन्यवाद है कि मैं वास्तव में क्या देख रहा था! – Brett
@paulpdaniels क्या मैं बस एक सादे फ़ंक्शन में वादा को लपेट सकता हूं और उसके बाद इसे इस तरह से प्रदान कर सकता हूं: Rx.Observable.from समझौता (getRequest) .retry .... जहां getRequest सादा कार्य है जो वादा करता है। वह है: फ़ंक्शन getRequest() {वापसी _this। $ http.get ('/ error')); } –
@ शैलेश वैश्यमयान आप जिस आरएक्सजेएस का उपयोग कर रहे हैं उसके संस्करण पर निर्भर करता है। आरएक्सजेएस 4 आपको 'से समझौता' करने के लिए फ़ंक्शन पास करने की अनुमति देता है, जिसका सब्सक्राइब समय पर आलसी मूल्यांकन किया जाता है, हालांकि, यह आरएक्सजेएस 5 में गायब है। किसी भी तरह से, दोनों मामलों में 'defer' काम करता है – paulpdaniels