// const promise = new Promise((resolve, reject) => {
// console.log(1);
// resolve();
// console.log(2);
// })
// // promise新建过后立即执行 先输出12
// promise.then(() => {
// console.log(3);
// })
// // promise.then()内部的代码在当次事件循环的结尾立即执行 所以先输出4 再输出3
// console.log(4);
// const promise = new Promise((resolve, reject) => {
// resolve('success1');
// reject('error');
// resolve('success2');
// // promise状态一旦改变就不会在变 所以 reject('error'); resolve('success2');都不会执行
// });
// promise.then((res) => {
// console.log('then:', res);
// }).catch((err) => {
// console.log('catch:', err);
// })
// Promise.resolve(1)
// // 如果 Promise.resolve()方法的参数是一个值
// .then(3)
// .then(Promise.resolve(4))
// .then(console.log)
// 红路灯交替亮
function red() {
console.log('red');
}
function green() {
console.log('green');
}
function yellow() {
console.log('yellow');
}
var light = function (timmer, cb) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
cb();
resolve();
}, timmer);
});
};
var step = function () {
Promise.resolve().then(function () {
return light(3000, red);
}).then(function () {
return light(2000, green);
}).then(function () {
return light(1000, yellow);
}).then(function () {
step();
});
}
step();
console