相关疑难解决方法(0)

在for循环中创建一个promise链

我希望下面的代码在控制台上打印一个数字,然后等待一秒,然后打印另一个数字.相反,它立即打印所有10个数字,然后等待十秒钟.创建一个行为如上所述的承诺链的正确方法是什么?

function getProm(v) {
    return new Promise(resolve => {
        console.log(v);
        resolve();
    })
}

function Wait() {
    return new Promise(r => setTimeout(r, 1000))
}

function createChain() {
    let a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
    let chain = Promise.resolve();
    for (let i of a) {
        chain.then(()=>getProm(i))
            .then(Wait)

    }
    return chain;
}


createChain();
Run Code Online (Sandbox Code Playgroud)

javascript es6-promise

20
推荐指数
1
解决办法
9727
查看次数

在 node.js 中一次以 50 个项目为单位迭代数组

我是 node.js 的新手,目前正在尝试编写数组迭代代码。我有一个包含 1,000 个项目的数组 - 由于服务器负载问题,我想一次遍历 50 个项目的块。

我目前使用如下所示的 forEach 循环(我希望将其转换为上述块迭代)

   //result is the array of 1000 items

   result.forEach(function (item) {
     //Do some data parsing
     //And upload data to server
    });
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

更新(响应回复)

async function uploadData(dataArray) {
    try {
        const chunks = chunkArray(dataArray, 50);
        for (const chunk of chunks) {
            await uploadDataChunk(chunk);
        }
    } catch (error) {
        console.log(error)
        // Catch en error here
    }
}

function uploadDataChunk(chunk) {
    return Promise.all(
        chunk.map((item) => {
            return new Promise((resolve, reject) => { …
Run Code Online (Sandbox Code Playgroud)

javascript arrays node.js promise

3
推荐指数
2
解决办法
5488
查看次数

标签 统计

javascript ×2

arrays ×1

es6-promise ×1

node.js ×1

promise ×1