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);
})
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。