1.promise 是一个替代回调函数的,解决方案。传统的回调需要,如果有多层,需要嵌套使用,但是promise改变了这种情况,
由原来的嵌套,变成了正常顺序执行方式,而不需要把下一个执行的写在回调函数内部。
promise常用:reject reslove 跟在then之后的catch
一旦执行了reject 或者 reslove,后面的promise状态不会再变。
代码如下:
function test(){
//promise是一个构造函数,内部接收一个回调函数。
//回调函数内部有两个参数,reslove是执行成功的时候调用的,reject是失败调用的
var promise = new Promise(function(reslove,reject){
reslove(true);
});
return promise;
}
//调用该函数
test().then(function(value){
//这里的value会收到上一个reslove过来的值
retrun new Promise(function(reslove,reject){
//对上一次的值做一个判断处理
if(value){
reslove("成功");
}else{
reject("失败");
}
});
}).catch(function(val){
//同时这里还可以捕捉异常
}).then(function(value){
//如果没有抛出异常会继续上一次的值
});
2.async/await 语法糖
通过async 可以指定一个函数为异步函数,执行异步函数后才能使用await.
await的作用其实就是替代了then方法,将resolve的值直接返回,使用起来更加方便。
//示例
async function demo() {
var result = await test(); //这里可以直接接收到返回值
return result; //如果调用demo函数的话,也是需要使用await来接收result这个返回值的.
}
注意:当return 一个await的值的时候,接收的函数也需要铜鼓await来接收,否则接收的数据会失败。