ES6---promise解决异步编程
自2015年6月ECMAScript 6.0正式发布以来,块级作用域,解构赋值,async函数等新特性让js编程有了更多可能.其中的重磅------Promise对象更是异步编程的更强大更完善的解决方案.小demo如下:
let p = new Promise(function (resolve, reject) {
let res = $.ajax(
{
type: "POST",
async: false,
data: null,
url: baseUrl + "/test",
success: function (data) {
return data;
},
error: function (data) {
return data;
}
}
);
resolve(res);
});
function post_sth(data) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
let res = {mgs: 'success'};
console.log('=====第一个请求的res是====');
console.log(data);
console.log(`===第二个定时器的res是===`);
console.log(res);
resolve(res);
}, 2500);
});
}
p.then(post_sth).then(function (data) {
console.log(`最后获取的数据是定时器里的res===`);
console.log(data);
});
关于promise对象的基础知识可以参考 MDN或ECMAScript 6 入门.