promise解决回调地狱(callback hell)

本文介绍了如何使用Promise解决回调地狱问题,通过实例解析Promise.all和Promise.race的用法和区别。Promise.all用于等待所有Promise实例完成,并按顺序返回结果数组;Promise.race则返回最快完成的Promise实例的结果,无论成功或失败。文章总结了Promise作为异步编程解决方案的优点和特点,以及在处理异步操作时应注意的问题。
摘要由CSDN通过智能技术生成

promise解决回调地狱(callback hell)

  • 在我们需要对一个异步操作进行频繁的调用的时候,且要保证一步操作的顺序,可能会出现
  • 回调地狱(callback)的情况 例如:
var fs = require('fs')

fs.readFile('../data/a.txt','utf8',function (err,data) {
   
    if (err) {
   
        throw err
    }
    console.log(data)

    fs.readFile('../data/b.txt','utf8',function (err,data) {
   
        if (err) {
   
            throw err
        }
        console.log(data)

        fs.readFile('../data/c.txt','utf8',function (err,data) {
   
            if (err) {
   
                throw err
            }
            console.log(data);   
        }) 
    })
})

callback hell

解决这个问题让我们的代码看起来更加直观,我们可以用promise 解决这个问题

小栗子

var p1 = new Promise(function (resolve,reject) {
   
    fs.readFile('../data/a.txt','utf8',function (err,data) {
   
        if (err) {
   
            reject(err)
        } else {
   
            resolve(data)
        }
    })
})

var p2 = new Promise(function (resolve,reject) {
   
    fs.readFile('../data/b.txt','utf8',function (err,data) {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值