最忌做项目遇到问题,接口返回了Promise 对象,如何不能从外面拿到这个对象的属性值,后来发现,这个对象 的属性是不能从外面拿到的,之恶能通过链式操作取值
//假如 foo()返回的是一个Promise对象
foo().then((result) => {
console.log(result)
})
.catch((error) => {
console.log(error)
})
//在上面的代码中,当 Promise 对象成功时,控制台将打印 Promise 的结果。如果 Promise 失败,则控制台将打印错误信息。请注意,使用 Promise 的 then 方法时,必须提供成功回调函数,否则 Promise 的结果将被丢弃。
其实promise还有更深的链式操作,如下 getResult 函数有一个 promise 对象的参数:
getResult: function (p) {
p.then((result) => {
console.log(result)
console.log('执行「这个」”');
return new Promise(function (resolve, rejected) {
resolve(1)
})
}).catch((error) => {
console.log('执行「那个」');
return new Promise(function (resolve, rejected) {
resolve(0)
})
}).then((value) => {
console.log(value) //这个 value 可能是 1 也可能是2 ,但是在nuxt3下无法被使用,在单独vue项目应该是能被使用的
})
}
