SAP Spartacus CurrentProductService返回的null对象-阿里云开发者社区

开发者社区> 开发者小助手-bz4> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9489 0
as3对象销毁是否需要全部属性置null?
as3对象销毁是否需要全部属性置null? 川  14:07:45不需要川  14:08:05只有被外部引用的需要川  14:08:41但是为了防止其他成员不小心让的某属性被外部引用,最好还的都 null 午后の咖啡(8548439)  14:09:05川  14:11:10比如有的同事为了方便,在你的类里加了个公用方法暴露你了私有属性并且引用之。
545 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13172 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11504 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6888 0
2315
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载