Javascript:如何从输出中选择特定部分
简单问题:Javascript:如何从输出中选择特定部分,javascript,object,output,console.log,Javascript,Object,Output,Console.log,简单问题: FunctionOutput: Promise { _c: [ { promise: [Object], resolve: [Function], reject: [Function], ok: [Function], fail: [Function], domain: null } ], _a: undefined, _s: 1, _d: true, _v: { body:
FunctionOutput: Promise {
_c:
[ { promise: [Object],
resolve: [Function],
reject: [Function],
ok: [Function],
fail: [Function],
domain: null } ],
_a: undefined,
_s: 1,
_d: true,
_v:
{ body:
{ token_type: 'bearer',
access_token: 'token',
expires_in: 7776000,
refresh_token: 'token' },
statusCode: 200 },
_h: 0,
_n: true }
这是一个函数的输出,我想指定输出“access\u token”,我该怎么做
console.log("token is"+ data._v.body.access_token);
不起作用
请帮忙,谢谢 你所展示的是一个承诺。您可以通过其
然后方法使用承诺:
data
.then(function(result) {
// Use result here
})
.catch(function(err) {
// Handle error here
});
我们无法告诉您如何访问结果上的access\u token
,因为我们不知道您显示的内容(如果有)的哪一部分将是分辨率值。它可以是result.access\u token
,也可以是result.body.access\u token
。但您将无法访问它,除非在then
回调中
data
.then(function(result) {
console.log(result.body.access_token);
})
.catch(function(err) {
// Handle error here
});
如果您只想拥有access\u令牌,可以使用destructuring
//无论调用什么,都会返回该对象
const mockRequest=()=>newpromise(resolve=>resolve(res))
//回应
常数res={
正文:{
令牌类型:'承载',
访问令牌:“令牌”,
截止日期:7776000,
刷新令牌:“令牌”
},
状态代码:200
}
/*
调用异步函数,然后等待其
finsihed请求,然后用数据调用then
通常情况下,我们只会返回任何返回的内容
i、 e(data)=>data.body.access\u令牌
但是我们可以使用一个新的ES6特性,它只返回对象
取而代之的是名字
i、 e({body})=>{token_type:'bearer'。。。
*/
函数getAccess(){
mockRequest()
.then({body:{access_token}})=>console.log(access_token))
.catch(err=>console.log(err))
}
getAccess();
/*
//或者使用es7功能,如异步等待
异步函数getAccess7(){
const{body:{access_token}}=wait mockRequest();
返回访问令牌;
}
getAccess7();
*/
请添加一个显示实际问题的。如何将对象分配给数据
?很可能是您为数据
分配了一个承诺,而不是只能异步检索的承诺值。是否已调试到代码中,以查看数据、\u v和body是否填充了值或未定义d?哪个部分“不起作用”?您如何获取数据?您从控制台.log(“令牌是”+数据.\u v.body.access\u令牌);
?是否未定义?是否有错误?请进一步解释,以便我们提供帮助