ジェニー・レイトについて知りましょう!


🔖 8月6日TIL


generatorと普通の関数の特徴は?

  • サードパーティ関数は、関数呼び出し側に関数実行の制御権を譲渡することができる.
  • サードパーティ関数は、関数呼び出し者と関数の状態を交換することができる.
  • は、
  • サードパーティオブジェクト(小さくて小さい)を返します.
  • 正義はどうする?

    function* minsu() {
      const myMsgList = [
        '안녕 나는 민수야',
        '만나서 반가워',
        '내일 영화 볼래?',
        '시간 안 되나?',
        '내일모레는 어때?'
      ]
      for (const msg of myMsgList) {
        console.log('수지: ', yield msg)
      }
    }
    
    const a = minsu()
    console.log('민수: ', a.next().value)
    console.log('민수: ', a.next("안녕!").value)
    console.log('민수: ',a.next("나도 만나서 반가워!").value)
    console.log('민수: ',a.next("그건좀...").value)
    上記のコードに示すようにfunction*で実現できます.
    1つ以上の降伏式も含まれます.
    1.yieldはjner layer関数の実行を一時停止するか、キーワードの後の式の計算結果をjner layer関数呼び出し元に返します.
    2.nextメソッドに渡されるパラメータは、サードパーティ関数が割り当てられた歩留まり式の変数に格納されます.
    では、上のコードはどのような結果になりますか?

  • nextメソッドが最初に呼び出されると、最初の最終品目式が実行され、一時停止されます.
  • では、最初のnextメソッドはパラメータを渡さないので、入力値も無視されます.
  • のため、最初の生産量値「民秀:こんにちは、私は民秀です」が印刷されました.

  • 2番目のnextメソッドを呼び出すときに渡されるパラメータ「さようなら」は、最初の完成品式を呼び出すコンソールです.logに渡されます.
    そこで、まず「秀智:こんにちは」と出力します.
  • に続き、完成品msgはウィジェットの対象に戻り、「ミンス:お会いできて嬉しいです」と出力した.

  • 次に、収益率式が割り当てられた変数に「お会いできて嬉しいです」が格納されます.
  • について「秀智:私もお会いできて嬉しいです!」出力します.
  • に続き、yield msgは「明日映画を見に行きますか?」出力します.

  • 次の「それはちょっと…」この降伏式を割り当てられた変数に格納します.
    「秀智:それはちょっと…」出力します.
  • に続いて、完成品msgは小バージョンのオブジェクトに戻り、「あさってはどうですか?」出力します.
  • 使用例


    export function* fetchData(action) {
      yield put(actions.setLoading(true))
    
      yield put(actions.addLike(action.timeline.id, 1))
      yield call(callApiLike)
      yield put(actions.setLoading(false))
    }
    上記の例では、putなどのeffectをプライベートミドルウェアに実行し、プライベートミドルウェアをプライベートミドルウェアに渡します.次に、実行プロセスをサードパーティに渡します.
    すなわち,PUTに関する情報をプライベートミドルウェアに渡し,次の製品を実行する.(作成された関数とプライベートミドルウェアが連携します.)

    に感銘を与える


    ただ単に管理者に実行フローを調整できる程度のことを知っただけで、今回はTILを書くとともに、フローがどのように移行するかをさらに考えるきっかけになりました!