我想用(新承诺)将数据存储在变量中?javascript

我想用(新承诺)将数据存储在变量中?javascript,javascript,javascript-objects,es6-promise,Javascript,Javascript Objects,Es6 Promise,我想将数据存储在变量storData中,并将其打印到控制台- const opj = [ { data : {id: 1 , name : "Emad" }}, { data : {id: 2 , name : "Ahmad" }}, { data : {id: 3 , name : "Mazen" }} ]; const p = new Promise (resolve => { setTimeout(resolve(opj), 300); }); let

我想将数据存储在变量storData中,并将其打印到控制台-

const opj = [
  { data : {id: 1 , name : "Emad" }},
  { data : {id: 2 , name : "Ahmad" }},
  { data : {id: 3 , name : "Mazen" }}
  ];


const p = new Promise (resolve => {

  setTimeout(resolve(opj), 300);

});


let storData = [];


p.then(result => {
  //console.log(result);
  storData = [...result];
})

// i need the data outside hear in console:

console.log('storData',storData);

我想要一个简单的解释,这样我就可以学习了

如果您对在函数中封装代码感到满意,那么可以将其标记为和结果

虽然async/await本质上是一种语法糖,但它提供了一个易于识别的事件链,对于刚开始学习的人来说可能更为熟悉,但也有助于编写更干净的代码

常数opj=[ {data:{id:1,name:Emad}}, {数据:{id:2,姓名:Ahmad}}, {数据:{id:3,名称:Mazen} ]; const p=new Promise resolve=>setTimeoutresolveopj,300; 异步函数getResult{ 让result=wait p;//等待p解析 让storData=[…结果];//处理结果 console.log'storData',storData;//记录它 }
获取结果 如果您习惯于将代码包装到函数中,那么可以将其标记为和结果

虽然async/await本质上是一种语法糖,但它提供了一个易于识别的事件链,对于刚开始学习的人来说可能更为熟悉,但也有助于编写更干净的代码

常数opj=[ {data:{id:1,name:Emad}}, {数据:{id:2,姓名:Ahmad}}, {数据:{id:3,名称:Mazen} ]; const p=new Promise resolve=>setTimeoutresolveopj,300; 异步函数getResult{ 让result=wait p;//等待p解析 让storData=[…结果];//处理结果 console.log'storData',storData;//记录它 } 获取结果 将console.log语句移动到then块中。在这种情况下,console.log在承诺得到解决之前运行

p.then(result => {
  //console.log(result);
  storData = [...result];
  console.log(storData)
})
这篇关于MDN的文章应该让您开始理解承诺- 将console.log语句移动到then块中。在这种情况下,console.log在承诺得到解决之前运行

p.then(result => {
  //console.log(result);
  storData = [...result];
  console.log(storData)
})
这篇关于MDN的文章应该让您开始理解承诺-

问题是什么?我需要在控制台日志中的变量storDatap中输入hear-in之外的数据。然后以异步方式工作。这就是为什么console.logstorData中没有显示任何内容。要修复p.then回调函数中的move console.log,请在then块中移动console.log语句。在这种情况下,console.log在承诺得到解决之前运行。问题是什么?我需要在控制台日志中的变量storDatap中的hear之外的数据。然后以异步方式工作。这就是为什么console.logstorData中没有显示任何内容。要修复p.then回调函数中的move console.log,请在then块中移动console.log语句。在这种情况下,console.log在解析承诺之前运行