专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Node.js回调函数导致的多层嵌套

Node.js是非阻塞编程,那么在编码过程中肯定会遇到很多回调函数(callback),如果多个处理的回调函数嵌套在一起的话,就会形成多嵌套,代码非常难看。

// 回调函数导致的多层嵌套,代码难看
function dbupdate(sql, done) {
    setTimeout(() => done(sql + ' update ok.'), 800);
}

dbupdate('1.sql1', param => {
    console.log(param);
    dbupdate('1.sql2', param => {
        console.log(param);
        dbupdate('1.sql3', param => {
            console.log(param);  
        })  
    })
});

Promise的两种写法:

// Promise(承诺的意思),简洁
function dbupdateAsync(sql) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log(sql + ' update ok.');
            resolve(sql + ' ok');
        }, 800);
    });
}
dbupdateAsync('2.sql1')
.then(() => dbupdateAsync('2.sql2'))
.then(() => dbupdateAsync('2.sql3'));

// async/await写法,更简洁
async function updateAll() {
    const result1 = await dbupdateAsync('3.sql1');
    const result2 = await dbupdateAsync('3.sql2');
    const result3 = await dbupdateAsync('3.sql3');
    console.log(result1, result2, result3);
}
updateAll();

文章永久链接:https://tech.souyunku.com/43429

未经允许不得转载:搜云库技术团队 » Node.js回调函数导致的多层嵌套

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们