简体   繁体   English

无法从Fetch response.json()返回JSON字段(但可以从console.log中看到它)

[英]Can't return JSON field from Fetch response.json() (but can see it from console.log)

I'm developing a Chrome extension and in my background.js i have a function 我正在开发Chrome扩展程序,并且在我的background.js中,我有一个功能

async function getData() {
  var resp = await (await fetch("https://www.example.com/json")).json();
  console.log(resp.field);
  alert(resp.field);
  return resp.field;
}

When i call the function ( var x = getData() ) alert and console.log show the content of the field (expected behavior), but then it returns a resolved Promise object. 当我调用函数( var x = getData() )时,alert和console.log显示字段的内容(预期行为),但随后返回已解决的Promise对象。 What am i missing? 我想念什么?

Async functions always return promises . 异步函数总是返回promise Your getData function simply wraps resp.field into a resolved promise. 您的getData函数只是将resp.field包装到一个已解决的promise中。

getData().then(field => console.log(field))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM