js系列四十二:回调地狱的解决方法

本文探讨了如何利用Promise解决回调地狱问题。通过创建Promise实例,将异步操作放入回调函数,处理请求的pending、resolved和rejected状态,以及使用then和catch进行结果处理。文中还提供了一个简化版ajax的示例。

我们前面学习过,当想要确保某代码在某某之后执行时,可以利用函数调用栈,将想要执行的代码放入回调函数中,

// 一个简单的封装
function want() {
	console.log("这是你想要执行的代码");
}

function fn() {
	console.log("这里表示执行了一大堆各种各样代码");
	// 其他代码执行完毕之后,最后执行回调函数
	want && want();
}

fn(want);

利用回调函数封装,是我们在初学javascript时常常会使用的技能.
除了利用函数调用栈的执行顺序之外,还可以利用队列机制来确保我们想要的代码压后执行.

function want() {
	
}

function fn(want) {
	want && setTimeout(want, 0);
	console.log('');
}

fn(want);

与setTimeout类似,promise也可以认为是一种任务分发器,它将任务分配到promise队列中,通常的流程是首先发起一个请求,然后等待并处理请求结果.
简单的用法如下所示

var tag = true;
var p = new Promise(function(resolve, reject) {
	if(tag) {
		resolve('treu');
	} else {
		reject("false");
	}
})

p.then(function(result) {
		console.log(result)
})
.catch(function(err
博客
v8worker
05-08 2962
05-06 2946
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值