gpt4 book ai didi

javascript - 再次关于 javascript 中的 async/await

转载 作者:太空宇宙 更新时间:2023-11-04 02:01:58 25 4
gpt4 key购买 nike

我的函数现在看起来像这样:

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;
}

我不知道在用值填充数组后如何返回它。使用回调它工作正常,但我想以正确的方式使用 async/await 方法来做到这一点。谢谢您的帮助。

最佳答案

创建方法来返回请求的 promise ,并将该方法与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 [];}
}

关于javascript - 再次关于 javascript 中的 async/await,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com