Javascript 等待抓取完成,直到返回数据

Javascript 等待抓取完成,直到返回数据,javascript,node.js,Javascript,Node.js,我希望在抓取完成时获取返回的数据,因为在完全抓取之后,正确的时间戳将在那里,但是函数将返回带有空时间戳的链接,而不是所有数据的最新时间戳 async function pushData(url) { let settings = { method: "Get" }; let timestamp = ""; let i = 0; fetch(url, settings) .then(res => res.json())

我希望在抓取完成时获取返回的数据,因为在完全抓取之后,正确的时间戳将在那里,但是函数将返回带有空时间戳的链接,而不是所有数据的最新时间戳

async function pushData(url) {
  let settings = { method: "Get" };
  let timestamp = "";
  let i = 0;

  fetch(url, settings)
      .then(res => res.json())
      .then((json) => {
        json.forEach(function (object) {
          console.log(object);
          i++;
        });
        timestamp = json[i-1].timestamp;
      });

  return await 'https://www.bitmex.com/api/v1/trade?count=1000&symbol=XBTUSD&startTime=' + timestamp;
}

var test = pushData('https://www.bitmex.com/api/v1/trade?count=1000&symbol=XBTUSD');
console.log(test);

您必须在这里使用JavaScript
Promise
,使用
async
/
wait
,正如我在下面的代码中为您所做的那样:

异步函数pushData(url){ 让设置={method:“GET”}; 让timestamp=“”; 设i=0; let res=等待fech(url、设置) res=等待res.json(); res.forEach(函数(对象){ console.log(对象); i++; }); timestamp=res[i-1]。时间戳; 返回{ res:res, 时间戳:时间戳 }; }; (异步()=>{ var测试=等待推送数据('https://www.bitmex.com/api/v1/trade?count=1000&symbol=XBTUSD'); 控制台日志(测试); 日志(“时间戳:+test.Timestamp”) log(“获取结果:+test.res”) })(); 由于此函数是
异步的
,因此它返回一个
承诺
,该承诺也必须解析。您没有解决它-您从未使用
wait
.then()
来解决它


下面是评论中提供的一些资源:

为什么不等待获取,而不是字符串?尝试不要将
await
混合在一起。那么
您的意思是将等待放在获取之前?用法:
const response=wait-fetch(URL),参见stackoverflow Post这是否回答了您的问题?var test=不可能等待pushData,因为它不在函数中。仍然首先显示timestamp+fetch结果,然后显示变量test的数据;我将立即修改答案,使其在全球范围内发挥作用。我刚刚编辑了这个问题,以解决您的评论中强调的问题。