再次关于asynchronous/在JavaScript中等待

我现在的function如下所示:

var GetImages = async() => { var images_array = []; await request ({ url: `https://api.tumblr.com/v2/blog/nameblog/posts?api_key=${process.env.TUMBLR_KEY}&type=photo`, json: true }, (error, response, body) => { if(error){ console.log('Unable to connect'); }else if(body.meta.status === "ZERO_RESULTS"){ console.log('Uable to find that address.'); }else if(body.meta.status === 200){ body.response.posts.forEach(function(obj) { obj.photos.forEach(function(photo) { if(photo.original_size.width>photo.original_size.height){ images_array.push(photo.original_size.url); console.log("dawdaw"); } }); }); //callback(images_array); } }); return images_array; } 

我不知道,如何填充数值后返回数组。 与callback它工作正常,但我想用asynchronous/等待方法正确的方式。 谢谢你的帮助。

创build方法返回promise的request并使用该方法await

 requestPromise = () => { return new Promise(function(resolve, reject) { request({ url: `https://api.tumblr.com/v2/blog/nameblog/posts?api_key=${process.env.TUMBLR_KEY}&type=photo`, json: true }, (error, response, body) => { if (error) { console.log('Unable to connect'); reject(); } else if (body.meta.status === "ZERO_RESULTS") { console.log('Uable to find that address.'); reject(); } else if (body.meta.status === 200) { body.response.posts.forEach(function(obj) { obj.photos.forEach(function(photo) { if (photo.original_size.width > photo.original_size.height) { images_array.push(photo.original_size.url); console.log("dawdaw"); } }); }); resolve(images_array) } }); }); } 

 var GetImages = async() => { try { images = await requestPromise(); return images; } catch(e){return [];} }