使用 rxjava+retrofit 将参数传递给链式响应
Pass parameters to chained responses with rxjava+retrofit
我有一个包含 ID、名称和 url 的对象列表,我需要调用服务来为该列表中的每个元素获取图像 url,但我还需要添加 url 到每个对象,像这样
public class PhotoDomainEntity {
String id;
String name;
String urL;}
ID 和姓名已知,但我需要调用休息服务才能获得 url 这样的
Observable.from(entities)
.flatMap(new Func1<PhotoDomainEntity, Observable<PhotoEntity>>() {
@Override
public Observable<PhotoEntity> call(PhotoDomainEntity s) {
//call get photo details for each id
return PhotosApi.photosApi.getPhotoData(Constants.API_KEY, s.id,
Constants.FLICKR_FORMAT, Constants.NO_JSONP_RESPONSE);
}
})
对于每个调用,我需要将 url 添加到 PhotoDomainEntity。我如何在每次呼叫响应到达时传递 ID 和名称?
Observable.from(entities)
.flatMap(new Func1<PhotoDomainEntity, Observable<PhotoEntity>>() {
@Override
public Observable<PhotoEntity> call(final PhotoDomainEntity s) {
//call get photo details for each id
return PhotosApi.photosApi.getPhotoData(
Constants.API_KEY,
s.id,
Constants.FLICKR_FORMAT,
Constants.NO_JSONP_RESPONSE)
.map(new Func1<PhotoEntity, PhotoEntity>() {
@Override
public PhotoEntity call(PhotoEntity fromServer) {
// if mutable:
fromServer.setId(s.getId());
return fromServer;
}
});
}
})
我有一个包含 ID、名称和 url 的对象列表,我需要调用服务来为该列表中的每个元素获取图像 url,但我还需要添加 url 到每个对象,像这样
public class PhotoDomainEntity {
String id;
String name;
String urL;}
ID 和姓名已知,但我需要调用休息服务才能获得 url 这样的
Observable.from(entities)
.flatMap(new Func1<PhotoDomainEntity, Observable<PhotoEntity>>() {
@Override
public Observable<PhotoEntity> call(PhotoDomainEntity s) {
//call get photo details for each id
return PhotosApi.photosApi.getPhotoData(Constants.API_KEY, s.id,
Constants.FLICKR_FORMAT, Constants.NO_JSONP_RESPONSE);
}
})
对于每个调用,我需要将 url 添加到 PhotoDomainEntity。我如何在每次呼叫响应到达时传递 ID 和名称?
Observable.from(entities)
.flatMap(new Func1<PhotoDomainEntity, Observable<PhotoEntity>>() {
@Override
public Observable<PhotoEntity> call(final PhotoDomainEntity s) {
//call get photo details for each id
return PhotosApi.photosApi.getPhotoData(
Constants.API_KEY,
s.id,
Constants.FLICKR_FORMAT,
Constants.NO_JSONP_RESPONSE)
.map(new Func1<PhotoEntity, PhotoEntity>() {
@Override
public PhotoEntity call(PhotoEntity fromServer) {
// if mutable:
fromServer.setId(s.getId());
return fromServer;
}
});
}
})