Node.js 如何返回此数组的第一个元素?
数组blobstream如下所示: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 = [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));
}
})();代码>