ES6 的 promise 和 ES7 的 async 与 await
// async 是让方法变成异步 // await 是等待该代码执行完成后(会阻塞程序执行),再往下执行。 // -------------------------------------------------- /** // 普通方法 function getData() { return "这是一个数据"; } console.log(getData()); //返回: 这是一个数据 */ // -------------------------------------------------- // async可以让普通方法变成一个promise的异步方法 /* async function getData() { return "这是一个数据"; } console.log(getData()); //返回 : Promise { '这是一个数据' } */ // -------------------------------------------------- // 如何获取异 async 步方法里面的数据 /* // 获取异步方法里面的数据:方式一(类似于回调) async function getData() { return "这是一个数据"; } var p = getData(); p.then(function (data) { console.log(data); // 这是一个数据 }); */ // -------------------------------------------------- /* function getData() { return "这是一个数据"; } async function test() { var d = await getData(); console.log(d); //返回: 这是一个数据 } test(); */ // await 阻塞的功能,可以把异步方法改成同步方法-------------- /* function getData() { console.log(2) return "这是一个数据"; } async function test() { console.log(1) var d = await getData(); console.log(3); console.log(d); //返回: 这是一个数据 console.log(4) } test();//输出顺序 1 2 3 这是一个数据 4 */ // 通常的async 和 await 的使用,await 必须在async 里边才能使用,否则会造成阻塞------- /* function getData() { return new Promise(function (resolve, reject) { setTimeout(function () { var username = "张三"; resolve(username); }, 1000); }); } async function test() { var data = await getData(); console.log(data); // 张三 } test(); */ // -------------------------------------------------- /* var getData = () => { return new Promise(function (resolve, reject) { setTimeout(function () { var username = "张三"; resolve(username); }, 1000); }); }; async function test() { var data = await getData(); console.log(data); // 张三 } test(); */ // -----------------------------------------------------------------------------