1.什么是promise?
promise是es6里面用于处理异步方法的对象,
promise会有三种状态:
pedding 进行中
fulfilled 成功
rejected 失败
成功会在then中返回,失败在catch中捕获
缺点:
promise的返回必须在then链中获取,用起来不方便
2.async/await
async是声明一个异步的方法,当调用一个 async 函数时,会返回一个 Promise 对象
await是等待一个异步方法执行完成,而且await只能在async里面使用
可以看下下面这个例子:
function say() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
let age = 26
resolve(`hello, joel。今年我 ${age} 岁`);
}, 1000);
});
}
async function demo() {
const v = await say();
console.log(v);
}
demo();
输出结果是: hello, joel。今年我 26 岁
如果不加await:会返回一个promise对象,显示是pending状态。
加入不用async/await那么这个 console.log(v)就得放在promise的then链后面。