所以我得到Promise<AsyncIterableIterator<T>>
并且我需要简单AsyncIterableIterator<T>
如何从承诺下解开AsyncIterableIterator<T>
?
答案 0 :(得分:1)
是的,实际上很简单。我们要自己实现AsyncIterableIterator
接口,对于每次对next
的调用,我们首先都要拆开Promise
。
function unwrapAsyncIterableIteratorPromise (input) {
return {
next (value) {
return input.then((iterator) => iterator.next(value))
},
[Symbol.asyncIterator] () {
return this
}
}
}
npm和TypeScript键入也都在npm上:
https://www.npmjs.com/package/unwrap-async-iterable-iterator-promise