尝试将两个承诺链接在一起,其中一个采用参数。我该如何链接它们? p1().then(p2(23));
没有工作
function p1() {
return new Promise(function(resolve, reject) {
setTimeout(function(){
console.log("hey p1")
resolve()
}, 2000)
})
}
function p2(b) {
return new Promise(function(resolve, reject) {
setTimeout(function(){
console.log("hey p2: " + b)
resolve()
}, 2000)
})
}
p1().then(p2(23));
答案 0 :(得分:2)
你应该传递返回promise的函数,例如:
function p1() {
return new Promise(function(resolve, reject) {
setTimeout(function(){
console.log("hey p1")
resolve()
}, 2000)
})
}
function p2(b) {
return new Promise(function(resolve, reject) {
setTimeout(function(){
console.log("hey p2: " + b)
resolve()
}, 2000)
})
}
p1()
.then(function(){
return p2(23)
});
答案 1 :(得分:-2)
如果您能够,我建议您使用async/await
。
我在Chrome控制台中运行了它,它按预期工作。
async function p1() {
await setTimeout(function(){
console.log("hey p1");
}, 2000)
}
async function p2(b) {
await setTimeout(function(){
console.log("hey p2: " + b)
}, 2000)
}
p1().then(() => p2(23));