Promise初探

在JavaScript的世界中,所有代码都是单线程执行的。

由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。异步执行可以用回调函数实现:

function runAsync1() {
    var p = new Promise(function (resolve, reject) {
        //做一些异步操作
        setTimeout(function () {
            console.log('异步任务1执行完成');
            resolve('11111');
        }, 1000);
    });
    return p;
}

function runAsync2(data) {
    var p = new Promise(function (resolve, reject) {
        //做一些异步操作
        setTimeout(function () {
            console.log('异步任务2执行完成');
            resolve(data);
        }, 2000);
    });
    return p;
}

function runAsync3(data) {
    var p = new Promise(function (resolve, reject) {
        //做一些异步操作
        setTimeout(function () {
            console.log('异步任务3执行完成');
            console.log(data);
            resolve(data);
        }, 2000);
    });
    return p;
}

runAsync1()
    .then(function (data) {
        console.log(data);
        return runAsync2("2222222");
    })
    .then(function (data) {
        console.log(data);
        return runAsync3("33333333");
    })
    .then(function (data) {
        console.log("end");
    });

 

posted @ 2018-03-15 21:35  zt123123  阅读(140)  评论(0编辑  收藏  举报