我正在使用Javascript调用databricks API。一旦获得响应对象,就需要解析该对象以显示数据。我正在异步函数中执行此操作,并且已经使用了await,但是由于函数在解决诺言之前正在前进,因此无法获取对象中的元素数量。
给我的印象是,如果我使用await
和async
,则将在语句后使用解析后的值。
async report_gen(url, folder_name, objlist) {
var meta_response = await fetch(url, {
method: 'GET',
headers: {
//
}
})
var meta_data = await meta_response.json();
//console.log(meta_data,meta_data.length,meta_data[0]);
var num = await meta_data.length;
console.log(meta_data, num, meta_data[0]);
//Above line displays values Object, undefined and undefined
for (var i = 0; i < meta_data.length; i++) {
console.log(meta_data[i]['object_type']);
if (meta_data[i]['object_type'] == "NOTEBOOK") {
objlist.push(meta_data[i]['path']);
console.log(typeof(objlist));
console.log(objlist);
} else if (meta_data[i]['object_type'] == "DIRECTORY")
objlist = await this.report_gen("", meta_data[i]['path'], objlist);
}
return objlist
}
当我在console.log
中打印数据时,我看到了API返回的对象,但是meta_data.length
始终显示为未定义,meta_data[0]
也是如此。如何使函数等待承诺得到解决?