當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript generator-to-iterable.generatorToIterable方法代碼示例

本文整理匯總了TypeScript中starry.generator-to-iterable.generatorToIterable方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript generator-to-iterable.generatorToIterable方法的具體用法?TypeScript generator-to-iterable.generatorToIterable怎麽用?TypeScript generator-to-iterable.generatorToIterable使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在starry.generator-to-iterable的用法示例。


在下文中一共展示了generator-to-iterable.generatorToIterable方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: TypeError

export function take<T = any>(
  iterable: Iterable<T>,
  count: number = 1
): Iterable<T> {
  if (!Number.isFinite(count)) {
    throw new TypeError('Argument `count` is not a finite number.')
  }

  if (count <= 0) {
    return []
  }

  if (iterable instanceof Array) {
    return iterable.slice(0, count)
  }

  return generatorToIterable(function* takeGenerator() {
    let iterator = iterable[Symbol.iterator]()
    while (count > 0) {
      let iteration = iterator.next()
      if (iteration.done) {
        return
      }
      yield iteration.value
      count--
    }
  })
}
開發者ID:seangenabe,項目名稱:starry,代碼行數:28,代碼來源:index.ts

示例2: Error

export function skip<T = any>(
  iterable: Iterable<T> | ArrayLike<T>,
  count: number = 1
): Iterable<T> | ArrayLike<T> {
  if (!Number.isFinite(count)) {
    throw new Error('Argument `count` must be finite.')
  }

  if (count <= 0) {
    return iterable
  }

  if (Array.isArray(iterable)) {
    return iterable.slice(count)
  }

  if (isArrayLike(iterable)) {
    return Array.from(iterable).slice(count)
  }

  return generatorToIterable(function* skipGenerator() {
    let iterator = iterable[Symbol.iterator]()
    let iterableWrap = iteratorToIterable(iterator)

    for (let _ of take(iterableWrap, count)) {
      // consume values
    }

    yield* iterableWrap
  })
}
開發者ID:seangenabe,項目名稱:starry,代碼行數:31,代碼來源:index.ts

示例3: generatorToIterable

export function concat<T = any>(...iterables: Iterable<T>[]): Iterable<T> {
  return generatorToIterable(function* concatGenerator() {
    for (let iterable of iterables) {
      yield* iterable
    }
  })
}
開發者ID:seangenabe,項目名稱:starry,代碼行數:7,代碼來源:index.ts

示例4: runBenchmark

runBenchmark('typed array > generator', () => {
  return generatorToIterable(function* typedArraySkipGenerator() {
    const i = 5
    for (let i = 5; i < ta.length; i++) {
      yield ta[i]
    }
  })
})
開發者ID:seangenabe,項目名稱:starry,代碼行數:8,代碼來源:bench.ts


注:本文中的starry.generator-to-iterable.generatorToIterable方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。