ES6

Promise 函数

new Promise(function (resolve, reject) {
    console.log(1111);
    resolve(2222);
}).then(function (value) {
    console.log(value);
    return 3333;
}).then(function (value) {
    console.log(value);
    throw "An error";
}).catch(function (err) {
    console.log(err);
});
# 返回Promise函数
print(1000, "First").then(function () {
    return print(4000, "Second");
}).then(function () {
    print(3000, "Third");
});

Promise函数主要用于更加规范的异步函数调用,摒弃回调地狱的写法,使回调更加符合书写习惯。Promise 比较适合顺序多次调用回调的情况

异步函数 async/await

function print(delay, message) {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            console.log(message);
            resolve();
        }, delay);
    });
}

这里的print为一个Promise函数,Promise的函数起始部分接收一个函数,函数的入参为resolve函数(正常执行,将参数传入后续的then执行流程)和reject函数(异常时执行)

async function asyncFunc() {
    await print(1000, "First");
    await print(4000, "Second");
    await print(3000, "Third");
}
asyncFunc();

Q.E.D.


每一个平凡的日常都是连续的奇迹