我们前面学习过,当想要确保某代码在某某之后执行时,可以利用函数调用栈,将想要执行的代码放入回调函数中,
// 一个简单的封装
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