Promise是一个ES5就出现的方法 ES6将它直接写入标准
Promise是一个构造函数 创建一个数据容器
Promise主动产生数据,不用手动添加
Promise对象的then函数是一个异步非阻塞函数
var p1 = new Promise(function (n1, n2) {
var n = Math.random();
n1(n); //n1 n2也是两个函数 n1调用 就代表p1产生了数据
});
//Promise数据容器取数据用then函数
var re = p1.then(function (date) {
console.log(date, 111);
return 200;
});
console.log(re); //一个新的Promise对象
re.then((date) => {
console.log(date);
}); //200
then函数的返回值是一个新的promise对象,如果then传入的回调函数返回值是一个promise对象 那么就是它,如果不是,就会把函数的结果包装为一个生成了数据的promise对象
var p1 = new Promise(function (n1, n2) {
var n = Math.random();
n2(n); // n1调用 代表产生了正确的数据 n2调用 就代表p1产生了错误的数据
});
p1.then(function (date) {
console.log(date, 111);
});
//n1 n2并不是then调用的函数 他们主要的作用在触发底层机制产生数据