SAP Spartacus CurrentProductService返回的null对象

简介: SAP Spartacus CurrentProductService返回的null对象

使用如下的代码监控getProduct可能返回的null值:import { Component, OnInit } from '@angular/core';

import { ActiveCartService, Product } from '@spartacus/core';

import { CurrentProductService } from '@spartacus/storefront';

import { Observable, OperatorFunction } from 'rxjs';

import { filter, map } from 'rxjs/operators';

@Component({

 selector: 'app-mycom',

 templateUrl: './mycom.component.html',

 styleUrls: ['./mycom.component.scss']

})

export class MycomComponent implements OnInit {

 jerryfilter: OperatorFunction =

   filter(this.jerrytest2);

 product$: Observable = this.currentProductService.getProduct().pipe(this.jerryfilter);

 productName$ = this.product$.pipe(map(product => product.name));

 jerrytest2(product: Product): boolean {

   const result = !!product;

   if (result === false) {

     console.log('false!');

   }

   return result;

 }

 constructor(private currentProductService: CurrentProductService, private cartService: ActiveCartService

 ) {

 }

 ngOnInit(): void {

   this.product$.subscribe(product => console.log(product));

 }

}TypeScript语句jerryfilter: OperatorFunction =

filter(this.jerrytest2);

对应的JavaScript函数:image.pngjerryfilter的JavaScript实现是一个名字叫filter的function,接收一个predicate function作为输入参数,返回一个新的函数,总金额和新的函数会基于传进来的predicate新建一个filterOperator实例:export function filter(predicate, thisArg) {

   return function filterOperatorFunction(source) {

       return source.lift(new FilterOperator(predicate, thisArg));

   };product$: Observable = this.currentProductService.getProduct().pipe(this.jerryfilter);

注意,product$是一个Observable对象,不是实际的product值:

image.pngoperator指向了我传入的filter.

product$也是Observable,因此可以继续调用pipe.image.png返回为false的情况:image.pngfilter的实现,如果箭头函数返回false,就不往下继续执行了:image.png

相关文章
|
23天前
@Autowired注解获取对象为null
@Autowired注解获取对象为null
13 0
|
6月前
|
缓存 负载均衡 前端开发
SAP Spartacus 和 Sticky session 相关的话题
SAP Spartacus 和 Sticky session 相关的话题
38 0
|
6月前
|
存储
SAP Emarsys 和 SAP Spartacus 的集成
SAP Emarsys 和 SAP Spartacus 的集成
51 0
|
6月前
|
API 开发者
Google Tag Manager (GTM) 和 Adobe AEPL 在 SAP Spartacus 中的应用
Google Tag Manager (GTM) 和 Adobe AEPL 在 SAP Spartacus 中的应用
65 0
|
6月前
|
API
SAP 电商云 CMSUserGroupRestriction 在 Spartacus 里的 evaluation 问题
SAP 电商云 CMSUserGroupRestriction 在 Spartacus 里的 evaluation 问题
49 0
|
3月前
|
JSON 开发者 数据格式
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
24 0
|
3月前
|
搜索推荐 开发者 UED
关于 SAP Spartacus 层的 UI 设计
关于 SAP Spartacus 层的 UI 设计
39 0
|
3月前
|
开发者 UED
SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
24 0
|
4月前
|
SQL JSON Java
Java【问题记录 02】对象封装+固定排序+list All elements are null引起的异常处理+Missing artifact com.sun:tools:jar:1.8.0
Java【问题记录 02】对象封装+固定排序+list All elements are null引起的异常处理+Missing artifact com.sun:tools:jar:1.8.0
43 0
|
6月前
|
前端开发 搜索推荐 JavaScript
什么是 SAP Spartacus 的 CMS Page Connector
什么是 SAP Spartacus 的 CMS Page Connector
46 0