getJSON("/post/1.json")//返回一个Promise对象
.then(function(post){returngetJSON(post.commentURL);//返回一个Promise对象})
.then(functionfunc(comments){console.log("Resolved: ", comments); });
上面的代码使用then方法,依次指定了两个回调函数。 第一个回调函数完成以后,会将返回结果作为参数,传入第二个回调函数。采用链式的then,可以指定一组按照次序调用的回调函数。
let p1 = new Promise((resolve, reject) => {
resolve('成功了111')
})
let p2 = new Promise((resolve, reject) => {
resolve('成功了222')
})
let p3 = new Promise((resolve, reject) => {
resolve('成功了333')
})
Promise.all([p1, p2, p3]).then((result) => {
console.log(result) //输出结果 ['成功了111', '成功了222', '成功了333]
}).catch((error) => {
console.log(error)
})
Promse.all在处理多个异步处理时非常有用,比如说一个页面上需要等两个或多个ajax的数据回来以后才正常显示,在此之前只显示loading图标。
Promse.all成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。
网友评论