list.service.ts的getData方法里的this.load触发时,this实际指向UserListService:
触发点还是list页面的async pipe:
ListService在运行时的实例化成UserListService,在userCmsConfig里完成:
getUserList:调用this.store.select:
getUserList的实现:
这里才执行createSelector?
createSelector的返回结果:
返回一个Observable对象:
select的输入参数:输入一个函数,该函数的类型定义:
接受一个输入参数,类型为T,输出参数为K,整个select调用返回的类型为:Observable:
问题来了:this.store.select输入的,到底是selector,还是纯函数projection?
从接口看,是一个selector:
这里开始加载list:
先take,再map:
注意,这里返回的是string,而不是Observable:
准备加载B2BUsers,参数为userId和params:
这个return语句会触发reducer的状态迁移:
这个payload里怎么只有一条数据?
似乎是在一个循环里被反复触发:
确实是在循环里:高阶reducer