我有一个关于Observable的问题,在我的HTML中,当我点击“RUN”按钮时,它将在ts中调用函数run():
@input application: Observable<Application>;
run() {
this.application.subscribe(x => this.service.sendRequest(x.data.id););
}
这里我有一个问题,因为每当我从另一个页面更新应用程序时,这个sendRequest将被触发,并将再次运行。 你能解释一下如何做这个动作吗? 我试着这样做:
@input application: Observable<Application>;
run() {
const id = this.application.subscribe(() => map(res =>
{return x.data.id}));
this.service.sendRequest(id);
}
它不起作用,因为id为null。
答案 0 :(得分:0)
那是因为你订阅了一个可观察者。意思是,每次observable的数据发生变化时,它都会向该observable发出更新事件,并输出新数据。
答案 1 :(得分:0)
将您的服务调用放在地图中:
@Configuration
public class MongoConverterConfig
{
@Bean
public CustomConversions dateConversions()
{
List<Converter<?, ?>> converterList = new ArrayList<Converter<?, ?>>();
converterList.add(new DateConverter());
return new CustomConversions(converterList);
}
@WritingConverter
static class DateConverter implements Converter<Date, Date> {
@Override
public Date convert(Date input) {
if (input == null) {
return null;
}
return Date.from(Instant.ofEpochMilli(input.getTime()).truncatedTo(ChronoUnit.DAYS));
}
}
}