Node.js 如何返回此数组的第一个元素?

Node.js 如何返回此数组的第一个元素?,node.js,arrays,angular,typescript,Node.js,Arrays,Angular,Typescript,数组blobstream如下所示: blobstream = [1,2,3] async function* main() { // ^−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− generator function for await (const blob of containerClient.listBlobsFlat()) { const blockBlobClient = contain

数组blobstream如下所示:

blobstream = [1,2,3]
async function* main() {
//            ^−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− generator function
    for await (const blob of containerClient.listBlobsFlat()) {
        const blockBlobClient = containerClient.getBlockBlobClient(blob.name);

        const downloadBlockBlobResponse = await blockBlobClient.download(0);
        const download = await blobToString(await downloadBlockBlobResponse.blobBody);
        console.log(download);
        yield download;
//      ^^^^^−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− yield a result
    }
}
我只想通过每个循环返回一个数组 第一圈:1 第二圈:2 第三圈:3

最好的解决方案是什么?谢谢伊登

 async function main() {
        let i = 1;
    
        for await (const blob of containerClient.listBlobsFlat()) {
            const blockBlobClient = containerClient.getBlockBlobClient(blob.name);
    
            const downloadBlockBlobResponse = await blockBlobClient.download(0);
            const download = await blobToString(await downloadBlockBlobResponse.blobBody);
            console.log(download);
            blobstream.push(download);
        }
        return blobstream;
    }

听起来您正在寻找一个(比如
containerClient.listBlobsFlat()
,它似乎也是一个异步生成器函数)。看起来是这样的:

blobstream = [1,2,3]
async function* main() {
//            ^−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− generator function
    for await (const blob of containerClient.listBlobsFlat()) {
        const blockBlobClient = containerClient.getBlockBlobClient(blob.name);

        const downloadBlockBlobResponse = await blockBlobClient.download(0);
        const download = await blobToString(await downloadBlockBlobResponse.blobBody);
        console.log(download);
        yield download;
//      ^^^^^−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− yield a result
    }
}
Async generator函数返回异步生成器,您可以在
中使用它来等待
循环(或直接):

下面是一个使用
setTimeout
模拟异步部分的示例:

const delay=(ms,value)=>新承诺(resolve=>setTimeout(resolve,ms,value));
异步函数somethingAsync(值){
等待延迟(Math.random()*1000+200);
返回值*2;
}
异步函数*main(){
for(常量值为[1,2,3,4]){
const x=等待某物同步(值);
产量x;
}
}
(异步()=>{
试一试{
控制台日志(“启动”);
用于等待(main()的常数x){
控制台日志(x);
}
控制台日志(“结束”);
}捕获(e){
console.error(e.message | | String(e));
}
})();