Promise是ES6中新增的一个类,它可以使异步操作以更优雅的方式呈现。
Promise对象
以下代码新建了一个Promise对象,Promise对象一旦建立,其中的函数便立即执行。
new Promise(function(resolve, reject){
console.log("Hello");
});
代码执行结果为:
Hello
resolve, reject
resolve与reject都是函数参数,resolve是代码正常进行后执行的,会把参数传给then()中的函数并执行,reject是代码执行时发生异常时执行的,把参数传给catch()中的函数并执行。如:
new Promise(function(resolve, reject){
var a = 0;
var b = 1;
var c = a / b;
if (b == 0 ) reject("error");
else resolve("a / b = " + c)
}).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
}).finally(function(){
console.log("finish")
});
代码执行结果:
a / b = 0
finish
await
在异步函数中,可以使用await指令,后接一个Promise,使得异步函数等这个Promise中的函数执行完毕后,再继续运行。