Всякий раз, когда вы видите синтаксис async function*
, это означает, что это функция AsyncGenerator . Вы можете использовать AsyncGenerator
, используя для await ... of на его сгенерированном AsyncIterator
async function* streamGeoJSONL(url) {...} // AsyncGenerator
const url = "https://s3.amazonaws.com/vtiles/honolulu_hawaii.geojsonl"
streamGeoJSONL(url) // => AsyncIterator
. Вы получаете AsyncIterator
при вызове AsyncGenerator
. Вот что генерирует AsyncGenerator
: AsyncIterator
Вы можете использовать AsyncIterator
с for await...of
for await (const newFeatures of streamGeoJSONL(url)) {/* do stuff with newFeatures */}
В случае вашего примера newFeatures
берет на себя значение, отправленное обратно ключевым словом yield
в streamGeoJSONL
async function* streamGeoJSONL(url) {
// ...
yield lines.map(JSON.parse) // this is newFeatures
} // AsyncGenerator