小编Adi*_*ain的帖子

处理RxJs flatMap流中的错误并继续处理

我在Angular 2应用程序中使用RxJs来并行地从多个页面的API中获取数据,并保存任何失败的请求以供将来重试.

为此,我想捕获flatMap-ing http get请求(下面的代码)生成的错误,并继续进行进一步的流处理.如果出现错误,我当前的解决方案会导致流停止.

Rx.Observable.range(1, 5)
   .flatMap(pageNo => {
              params.set('page', ''+pageNo);
              return this.http.get(this.API_GET, params)
                        .catch( (err) => {
                                  //save request
                                  return Rx.Observable.throw(new Error('http failed')); 
                          });
    })
    .map((res) => res.json());  
Run Code Online (Sandbox Code Playgroud)

让我们说在上面的例子中,第2页和第3页的HTTP请求失败.我想为这两个请求处理错误(保存失败的请求以后重试),并让其他请求继续并映射到json().

我尝试使用.onErrorResumeNext而不是捕获,但我无法使这项工作.

rxjs angular

6
推荐指数
1
解决办法
6499
查看次数

java.util.list的客户转换器到数组

我有一个对象类型的列表,如Customer类(属性:customerId,customerName)和一个String数组.

有没有办法从列表中填充/获取包含所有customerName的数组?(除了手动迭代列表),

Customer c1 = new Customer(1,"ABC");
Customer c2 = new Customer(2,"DEF");
Customer c3 = new Customer(3,"XYZ");
List<Customer> list = new ArrayList<Customer>();
list.put(c1); list.put(c2); list.put(c3);

String[] allCustomerNames = new String[list.size()];
//Code to get allCustomerNames populated.
//Ofcourse, other than to iterate through list 
Run Code Online (Sandbox Code Playgroud)

有什么办法可以类似......

allCustomerNames = list.toArray(customerNameConvertor);
Run Code Online (Sandbox Code Playgroud)

其中customerNameConveror是假设的转换器类,它将告诉使用customerName来获取数组元素的数量.

java arrays list

2
推荐指数
1
解决办法
240
查看次数

标签 统计

angular ×1

arrays ×1

java ×1

list ×1

rxjs ×1