核心提示:Prosmise对像是es6的新特性,也是异步编程的解决方案。var promise = new Promise(function (resolve , reject) {var result = a...
Prosmise对像是es6的新特性,也是异步编程的解决方案。
var promise = new Promise(function (resolve , reject) { var result = axios.get('../data.json'); if (result){ resolve(result) }else { reject(new Error()) } });
使用方法是 new Promise 对象,里面有两个参数,一个是resolve,一个是reject。resolve表示解决、成功,reject表示拒绝、失败。(axios是异步请求库,类似jq 的ajax)
调用:
promise.then(function (data) { console.log(data.data) })
async与await,是一对好机油,配合一起使用。功能类似Generator 函数 (*),但是更语义化,使用方法:
function resolveAfter2Seconds(x) { return new Promise(resolve => { setTimeout(() => { resolve(x); }, 2000); }); } async function f1() { var x = await resolveAfter2Seconds(10); console.log(x); // 10 } f1();
将异步转为同步,如果去掉 async 、await,结果会是undefined。