메이비 편지가 이렇게 묘하게 쓰인다고?빨리 일어나!

1783 단어
오늘 재미있는 것을 보았습니다. 그것은 바로 MayBe 편지입니다. 이것은 우리가 함수식으로 코드의 오류를 처리할 수 있도록 합니다. 블로그를 써서 기록하는 동시에 여러분에게 공유할 수 있습니다!

MayBe 함수 정의

const MayBe = function (val) {
    this.value = val;
}

MayBe.of = function (val) {
    return new MayBe(val);
}

MayBe는 데이터를 보유할 수 있는 편지로 맵 함수를 실현합니다
MayBe.prototype.isNothing = function() {
  return (this.value === null || this.value === undefined);
};
MayBe.prototype.map = function(fn) {
  return this.isNothing() ? MayBe.of(null) : MayBe.of(fn(this.value));
};

MayBe 맵은 전송된 함수를 적용하기 전에 isNothing 함수를 사용하여 용기의 값이null 또는 undefined인지 확인합니다.
(this.value === null || this.value === undefined);

결과가 true이면 MayBe는null을 반환합니다. 그렇지 않으면 뒤에 있는 함수 결과를 반환합니다.

간단한 실례


간단하게 MayBe를 만듭니다.
MayBe.of("abcd").map((x) => x.toUpperCase())

결과는 일목요연하다.
MayBe { value: 'ABCD' }

만약 우리가 abcd를null로 바꾸면 어떻게 될까요?
MayBe.of(null).map((x) => x.toUpperCase())

결과:
MayBe { value: null }

코드가 붕괴되지 않았습니다. 보안 용기인 MayBe에 값을 봉인했기 때문입니다. 모든 오류가 발생하지 않고 MayBe로 되돌아왔을 뿐입니다.of(null)

주의하다

  • 맵에null이나undefined로 되돌아오는 함수를 불러와도 MayBe는 처리할 수 있습니다
  • 모든 맵 함수는null이나undefined를 수신하든 안 하든 호출됩니다

  • 예를 들어 다음과 같이 하십시오.
    MayBe.of("word")
         .map( () => undefined )
         .map( (x) => "hello" + x )
    

    위의 코드를 실행하면 결과를 얻을 수 있습니다.
    MayBe { value: null }
    

    첫 번째 맵 함수가undefined로 되돌아와도 두 번째 맵은 호출됩니다!이것도 undefined를 되돌려줍니다. 왜냐하면 이전 맵은null/undefined를 되돌려 주었기 때문입니다. 단지 전송된 매개 변수를 적용하지 않습니다!
    지금까지 여러분께 공유한 내용입니다. 좋아요를 누르는 것을 잊지 마세요!안녕히 주무세요!

    좋은 웹페이지 즐겨찾기