Javascript,我无法传递超出范围的变量,谁能给出解决方案?

我正在尝试控制台记录 .then() 之外的变量 arrItems。有什么建议吗?提前致谢。


protected fun(){

    sp.web.lists.getByTitle("Requests")

    .items.get()

    .then((items: any[]) => {


    var arrItems = items.map((order) => {

    var info = {

      "Id": order.Id, "File": order.FileName

    }

    return info;

  })

  console.log(arrItems) // works

 },

);


 console.log(arrItems) // doesent works

}


慕姐4208626
浏览 145回答 2
2回答

素胚勾勒不出你

这.get是一个承诺,它是异步解决的。这意味着其他代码将在承诺解决之前执行。如果你不知道如何工作的,我建议你阅读一些文章/文档像这样。您可以使用awaites6 标记等待承诺解决,然后控制台记录结果。来自MDN 的示例function resolveAfter2Seconds(x) {       return new Promise(resolve => {        setTimeout(() => {          resolve(x);        }, 2000);      });    }        async function f1() {      var x = await resolveAfter2Seconds(10);      console.log(x); // 10    }        f1();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript