4Manuals

  • PDF Cloud HOME

目的地未解决的承诺 Download

    CSS / JS-如何覆盖一个孩子而不是其他孩子的父母过渡 反应:更改方向后触发重新渲染和offsetWidth的重新计算 我的Javascript从'string'转换为'integer'或'number'无效 如何删除外部索引并合并内部json 在React Native 图片无法通过javascript刷新 如何在react图表上的datakey中操作DateTime 在Cypress中保存变量 如何从作为请求传递的输入类型数据绑定中提取数据 通过dropzone laravel通过电子邮件发送多个图像

const array = [1, 2, 3]
const wrapper = (e) => {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            if(e === 2) {
                reject(e+":rejected")
            } else {
                console.log(e+":resolved")
                resolve()
            }

        }, e * 1000);
    })
}

const main = async() => {
    try {
        await Promise.all(array.map(e => wrapper(e)))
    } catch(e){
        console.log(e)
    }
}

main()

当前输出:

1:resolved
2:rejected
3:resolved

预期输出:

1:resolved
2:rejected

当一个承诺被拒绝时,我如何取消未解决的承诺。在这种情况下,我将取消承诺3

for(let i = 1;i <= 3;i ++) {
    await wrapper(i)
}

这不是解决方案,因此我想一次运行多个线程而不是一个一个地运行函数。这就是为什么我使用 promise.all

0 个答案:

没有答案



Similar searches
    为什么一直跳过名称输入? 如何在SQL Server中将9999转换为999999 从createSelector工厂推断返回类型 如何使用Javascript / Jquery重定向到特定窗口宽度的页面? JupyterLab中(取消)注释块的键盘快捷键