我想访问private_key
上的variable
console.log
,但在传递此值时,结果显示在控制台上显示promise{pending}
。
let private_key=new Promise((resolve,reject)=>{
setTimeout(function(){
resolve('464f64f6f464gs64g');
},5000);
});
private_key.then((message)=>{
return message;
});
console.log(private_key);
那么如何在变量中存储值并访问它。
答案 0 :(得分:2)
您可以访问then
块中已解析的值。
通过添加另一个value
块,您也可以在解析后访问then
。
let private_key=new Promise((resolve,reject)=>{
setTimeout(function(){
resolve('464f64f6f464gs64g');
},5000);
});
private_key
.then( message => console.log(message));
private_key
.then( message => message)
.then(key => console.log(key));

您也可以使用async-await
。
let getKey = async () => {
let private_key = new Promise((resolve,reject)=> {
setTimeout(() => resolve('464f64f6f464gs64g'),5000);
});
var key = await private_key;
console.log(key);
}
getKey();

答案 1 :(得分:0)
您正在获得承诺{pending},因为您已经编写了非阻塞代码,并且承诺将在5秒后解决。因此执行将向下移动并尝试记录private_key但是由于承诺未得到解决,它将显示未决。 您可以像这样编写代码
let private_key=new Promise((resolve,reject)=>{
setTimeout(function(){
resolve('464f64f6f464gs64g');
},5000);
});
private_key.then((message)=>{
console.log(message);
});