我确定我有什么遗漏,但由于无法确定,我可能会在这里查看。
简而言之,我想在Vue(https://codesandbox.io/s/6zlmkm61m3)中做到这一点
print(list(dict(dyndns + ip).items()))
但是,如果我将其提取到Vue中,它会给我function p1() {
return new Promise((resolve, reject) => {
console.log('p1')
resolve()
})
}
function p2() {
return new Promise((resolve, reject) => {
console.log('p2')
reject('p2')
})
}
p1()
.then(p2)
.catch((error) => {
console.log(error)
})
https://codesandbox.io/s/mq2343y6p8
所以我不确定这是否归因于Vue以及我如何调用这些方法,但是任何帮助将不胜感激。
Vue代码:
Uncaught (in promise)
答案 0 :(得分:4)
有问题的行是:
.then(this.$refs.promiseTwo.p2())
其中this.$refs.promiseTwo.p2
是指返回Promise的函数。但是,您不是将函数作为参数传递给then
(这是正常应做的,就像在此处的实时代码段中那样)-您正在调用函数,然后将其结果传递到.then
。
更改为
.then(this.$refs.promiseTwo.p2)
它应该可以正常工作。
您在codeandbox上的代码在这里翻译成实时代码段,看起来像
function p1() {
return new Promise((resolve, reject) => {
console.log('p1')
resolve()
})
}
function p2() {
return new Promise((resolve, reject) => {
console.log('p2')
reject('p2')
})
}
p1()
.then(p2()) // <------- problem: p2 is invoked, not passed
.catch((error) => {
console.log(error)
})
(在此页面上打开您的实际浏览器的控制台以查看Uncaught (in promise) p2
)