đây là mã của tôi:angular2/RxJS - làm thế nào để thử lại từ bên trong đăng ký()
this._api.getCompanies().subscribe(
res => this.companies = JSON.parse(res),
exception => {if(this._api.responseErrorProcess(exception)) { // in case this retured TRUE then I need to retry() } }
)
trong trường hợp một ngoại lệ xảy ra, nó sẽ được gửi đến một hàm trong API sau đó trở về true
nếu vấn đề là cố định (ví dụ như làm mới mã thông báo) và nó chỉ cần thử lại sau khi đã sửa số
cố định của tôi và tôi không thể tìm ra cách để thử lại.
Tôi không chắc chắn về cách 'lỗi' trông như thế nào. Tôi nghĩ rằng đó là một loạt các trường hợp ngoại lệ (có thể?). Vì vậy, bạn có thể mở rộng điều kiện 'takeWhile' thành:' errorCount <2 && this._api.responseErrorProcess (lỗi [0]) ' – rinukkusu
đây là những gì tôi sẽ hỏi, tôi sẽ kiểm tra nó cảm ơn bạn rất nhiều :) thực sự theo cách này tôi có thể tập trung xử lý lỗi từ api trực tiếp, thay vì thêm ngoại lệ trong mỗi subsribtion, cảm ơn bạn.! –
Bạn có thể thêm 'console.log (errors)' trước 'return' để xem cấu trúc của nó được cấu trúc như thế nào. – rinukkusu