概念

同步:即按照书写的顺序执行
异步:即在前一个方法未执行完时,就开始运行后一个方法
异步的好处:
从异步的概念中可以发现,程序异步运行,可以提高程序运行的效率,不必等一个程序跑完,再跑下一个程序,特别当这两个程序是无关的时候。两个程序在一定时间内,可以是同时运行的。写服务器的时候应该会碰到很多这样的例子。可以想象,如果服务器的程序都是同步的,那并发什么的就不存在了吧。

var foo = function(){
    console.log('foo begins');
    setTimeout(function(){
        console.log('foo finishes');
    },1000);
};
var bar = function(){
    console.log('bar executed');  
}
foo();
bar();

//foo begins
//bar executed
//foo finishes

回调

把一个函数作为参数传入到另一个函数中,那么这个作为参数的函数就叫做回调函数

var foo = function(callback){
    // foo method
    callback();
};
foo(bar);

promise

为了解决js回调地狱

Promise,他是一个对象,是用来处理异步操作的,可以让我们写异步调用的时候写起来更加优雅,更加美观便于阅读。顾名思义为承诺、许诺的意思,意思是使用了Promise之后他肯定会给我们答复,无论成功或者失败都会给我们一个答复,所以我们就不用担心他跑了哈哈。所以,Promise有三种状态:pending(进行中),resolved(完成),rejected(失败)。只有异步返回的结构可以改变其状态。所以,promise的过程一般只有两种:pending->resolved或者pending->rejected。

function getData(url){
    return new Promise((resolve,reject)=>{
        $.ajax({
            url,
            success(data){
                resolve(data)
            },
            error(err){
                reject(err)
            }
        })
    })
}

let url = 'xxxxxxx'
getData(url).then(res=>{
    console.log(res)
})
文章目录