1、事件发布/订阅模式
2、Promise
let promise = new Promise((resolve,reject)=>{
resolve(“执行成功”);
reject(“执行失败”);
});
promise.then((data)=>{
// resolve执行回掉
}).catch(err => {
// 执行失败回掉
});
3、Generator
function *main() {
console.log('starting *main()');
yiled; // 打住,不许往下走了
console.log('continue yield 1’);
}
let it = main();
it.next();
it.next();
4、async
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(() => {reject('error')}, 5); //reject模拟出错,返回error
});
}
async function asyncPrint(ms) {
try {
console.log('start');
await timeout(ms); //这里返回了错误
console.log('end'); //所以这句代码不会被执行了
} catch(err) {
console.log(err); //这里捕捉到错误error
}
}