const p1 = new Promise((resolve, reject) => {
resolve(1)
})
const p2 = new Promise((resolve, reject) => {
resolve(2)
})
p1.then(res => {
console.log(res)
p2
})
.then(res => {
console.log(res)
})
const p1 = new Promise((resolve, reject) => {
resolve(1)
})
const p2 = new Promise((resolve, reject) => {
resolve(2)
})
p1.then(res => {
console.log(res)
p2
})
.then(res => {
console.log(res)
})
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答937 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
主要是
.then
的连用问题。连用的.then
会等待上一个.then
执行完毕。如果上一个
.then
的回调函数有return
回来结果,那么就会将返回结果作为参数,传入第二个回调函数。上面的例子中
p1.then
后并没有return
一个结果,所以:.then
中的console.log(res)
输出的是1
;.then
中的console.log(res)
输出的是undefined
。如果想要连续调用,可以这样写:
具体关于
Promise
相关的内容,可以查看阮一峰老师的 Promise 对象 - ECMAScript 6入门