node.js - 回调函数与 Promise 和 Async wait 之间的区别

标签 node.js nodejs-stream nodejs-server

我理解回调函数,但我不理解promise方法和async和await。为什么在node js中使用这三个函数。可以给出示例代码解释。

最佳答案

回调

回调是一个函数,它作为参数传递给另一个函数,并在最后执行。像这样:

function(callback){

   //you do some tasks here that takes time

   callback();
}

回调是处理异步代码的方法。例如,您可能需要从 Node 应用程序中的文件中读取数据,这个过程需要时间。因此,nodejs 不会在读取时阻塞代码,而是执行其他任务,然后在执行回调后返回。

promise

promise 还可以像回调方法一样处理异步代码,但采用更具可读性的方式。例如,而不是这样:

example(function(){
    return example1(function(){
        return example2(function(){
            return example3(function(){
                done()
            })
        })
    })
})

它使它更具可读性,如下所示:

example()
    .then(example1)
    .then(example2)
    .then(example3)
    .then(done)

异步函数/等待

async函数用于编写异步代码,特别是promise。在此函数内部,关键字 await 用于暂停 Promise 的执行,直到它得到解决。换句话说,它等待 Promise 解析,然后恢复异步函数。例如:

async function example(){
    var data = await getData() // it waits until the promise is resolved
    return data;
}

关于node.js - 回调函数与 Promise 和 Async wait 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56035233/

相关文章:

javascript - 安装 ionic 应用程序后看不到 ionic 应用程序图标

javascript - NodeJS不断刷新数据库表的数据

node.js - protractor 测试在重启后选择边缘浏览器而不是 chrome

javascript - Node.js 全局变量和 TypeScript

javascript - 数据未转换 Node.js 转换流

google-analytics - 在 GA4 数据流中找不到测量协议(protocol)来创建用于发送事件的 api-secret

javascript - nodejs中分配全局变量问题

node.js - 使用 ExcelJS 使用流修改现有 Excel 文件

javascript - 如何在mongodb中replaceRoot后进一步分组对象

node.js - 如何使用 Node js获取基于jwt token 的错误消息中的状态代码?