Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中检索PromiseSolve数据_Javascript_Google Chrome Extension_Promise - Fatal编程技术网

在JavaScript中检索PromiseSolve数据

在JavaScript中检索PromiseSolve数据,javascript,google-chrome-extension,promise,Javascript,Google Chrome Extension,Promise,我正在从GoogleChrome检索标签数据,该数据存储在Promise对象中,该对象将通过数组实现。正确的数据当前存储在Promise对象中,但我只想访问数组本身 我尝试将结果包装成一个新的Promise并再次尝试解决它,但我一直在Promise对象中获取数据 export async function getTabData(){ let tabs = []; await window.chrome.tabs.query({currentWindow: true}, function(

我正在从GoogleChrome检索标签数据,该数据存储在Promise对象中,该对象将通过数组实现。正确的数据当前存储在Promise对象中,但我只想访问数组本身

我尝试将结果包装成一个新的Promise并再次尝试解决它,但我一直在Promise对象中获取数据

export async function getTabData(){
  let tabs = [];
  await window.chrome.tabs.query({currentWindow: true}, function(data){
    for(let i=0; i<data.length; i++){
      tabs.push(data[i]);
    };
  });
  return tabs;
}

export async function getPromise() {
  const promise1 = await Promise.resolve(getTabData())
    .then(i => i)
  new Promise(function(res, rej){
    res(promise1);
  })
    .then(function(result){
      return Promise.resolve(promise1);
    })
    .then(function(result){
      console.log(result);
  });
}

导出异步函数getTabData(){
设tabs=[];
wait window.chrome.tabs.query({currentWindow:true},函数(数据){
for(设i=0;i)
新承诺(功能(res、rej){
res(允诺人1);
})
.然后(函数(结果){
返还承诺。解决(承诺1);
})
.然后(函数(结果){
控制台日志(结果);
});
}
我希望得到一个选项卡数组,但是我得到了一个PromiseValue中存储该数组的Promise对象

您不能等待选项卡查询,因为它没有返回承诺。因此,请用新承诺包装它,并在回调中解决它

当前,阵列将返回为空,并在您登录后填充

export function getTabData() {  
  return new Promise((resolve, reject) => {
    window.chrome.tabs.query({currentWindow: true}, resolve);
  });
}

export async function doTabsStuff() {
  const tabs = await getTabData();
  // do something with tabs array
}

您不能等待选项卡查询,因为它没有返回承诺。因此,请将其包装在新承诺中,并在回调中解决

当前,阵列将返回为空,并在您登录后填充

export function getTabData() {  
  return new Promise((resolve, reject) => {
    window.chrome.tabs.query({currentWindow: true}, resolve);
  });
}

export async function doTabsStuff() {
  const tabs = await getTabData();
  // do something with tabs array
}

它现在只能在函数中工作。再运行一些测试san
async
函数总是返回一个promisei get that,但是如何仅从promisevalue中获取数组?使用
then()
wait
我使用
then()保存了函数
然后返回了数据,但我仍然只得到了Promise对象:
const data=doTabsStuff()。然后(d=>d);
它只在函数中暂时起作用。再运行一些测试san
async
函数总是返回一个promisei获取该值,但如何从promisevalue中仅获取数组?或者使用
then()
wait
我使用
then()
运行保存的函数,然后返回数据,但我仍然只得到承诺对象:
const data=doTabsStuff()。然后(d=>d);