promise的基础认知及学习
Posted 阿曾的奶油汤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了promise的基础认知及学习相关的知识,希望对你有一定的参考价值。
var flag = true;
var message = \'我是初始值\'
var p = new Promise(function(resolve,reject) {
setTimeout(()=>{
if (flag) {
resolve(\'异步加载成功\')
// 传递的相当于掉完接口得到的data
}else {
reject(\'失败\')
// 传递的相当于掉接口失败所得的信息
}
},5000)
})
// .then()方法传递两个参数都是function,第二个参数的函数不是必填,也可写在.catch()方法里和.then同级
p.then(function (aaa) {
// 第一个参数用来接收成功的data并进行处理
message=aaa
// console.log(message);
},function (bbb) {
// 第二个参数用来接收失败的信息并进行处理
message = bbb
// console.log(message);
})
// console.log(message);
// .all()方法同时处理多个异步任务,所有任务完成才能返回结果
// .race()方法同时处理多个异步任务,只要有一个任务完成就能返回结果
function pp(text,time) {
return new Promise(function(resolve,reject) {
setTimeout(()=>{
if (flag) {
resolve(text)
// 传递的相当于掉完接口得到的data
}else {
reject(\'失败\')
// 传递的相当于掉接口失败所得的信息
}
},time)
})
}
// pp(\'我成功了\',3000).then((data)=>{
// console.log(data);
// })
Promise.all([pp(\'111\',1000),pp(\'222\',2000),pp(\'333\',3000)]).then((data)=>{
console.log(data);
})
Promise.race([pp(\'111\',1000),pp(\'222\',2000),pp(\'333\',3000)]).then((data)=>{
console.log(data);
})
// 如果all方法中有一个失败,会丢弃其他所有promise的结果
//在使用这个方法的时候要记住为每个promise关联一个错误的处理函数catch.
Promise.all([p1, p2, p3].map(p => p.catch(e => return e )))
.then(values => {
console.log(values);
}).catch(err => {
console.log(err);
})
以上是关于promise的基础认知及学习的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段12——JavaScript的Promise对象