如何实现async/await



我想知道如何在response.json((中返回一个新的对象数组,以便在失眠时可见。

我正在从API接收各种信息,目标是将我创建的response.json((中的一个对象数组返回到我的前端

所以我想把它们存储在一个变量中。

这是代码:

var T = new Twit({
consumer_key: process.env.CONSUMER_K,
consumer_secret: process.env.CONSUMER_S,
access_token: process.env.ACCESS_T,
access_token_secret: process.env.ACCESS_T_S,
timeout_ms: 60 * 1000,
strictSSL: true,
})
app.get('/teste', (request, response) => {
let obj = {};
let obj2 = {};
T.get('https://******.com/1.1/statuses/user_timeline.json?screen_name=******=1', (err, data, response) => {
data.map(item => {
obj.name = item.user.name;
obj.texto = item.text;
obj.profileImage = item.user.profile_image_url;
});
});
T.get('https://******.com/1.1/statuses/user_timeline.json?screen_name=u*******=1', (err, data, response) => {

data.map(item => {
obj2.name2 = item.user.name;
obj2.texto2 = item.text;
obj2.profileImage2 = item.user.profile_image_url;
});

});   
setTimeout(() => {
return response.json([obj, obj2]);
}, 1000);

});

在负责我的人的帮助下,能够返回一个更干净的json,但现在我想知道如何实现aync/await来代替"setTimeout((";,因为该函数在使用";dalay";的";setTimeout((";。

谢谢!

问题是您的数组变量超出了路由函数,使其全局化,这意味着即使创建新的GET请求,也会存储以前的数组值。因此,您可以在route函数中添加数组变量,也可以在发出GET请求后立即清空数组。

一个例子:

var T = new Twit({
consumer_key: process.env.CONSUMER_K,
consumer_secret: process.env.CONSUMER_S,
access_token: process.env.ACCESS_T,
access_token_secret: process.env.ACCESS_T_S,
timeout_ms: 60 * 1000,
strictSSL: true,
})

app.get('/teste', (request, response) => {
var obj = {};
T.get('https://******.com/1.1/statuses/user_timeline.json?screen_name=******=1', (err, data, response) => {

data.map(item => {
obj.name = item.user.name, 
obj.texto = item.text 
obj.profileImage = item.user.profile_image_url
});

});
T.get('https://******.com/1.1/statuses/user_timeline.json?screen_name=u*******=1', (err, data, response) => {

data.map(item => {
obj.name2 = item.user.name, 
obj.texto2 = item.text 
obj.profileImage2 = item.user.profile_image_url
});

});    

return response.json([obj]);
});

不要每次都推送一个新的Object,只需创建一个空对象并将值分配给同一个对象。

var T = new Twit({
consumer_key: process.env.CONSUMER_K,
consumer_secret: process.env.CONSUMER_S,
access_token: process.env.ACCESS_T,
access_token_secret: process.env.ACCESS_T_S,
timeout_ms: 60 * 1000,
strictSSL: true,
})
app.get('/teste', (request, response) => {
let arr0 = []
T.get('https://******.com/1.1/statuses/user_timeline.json?screen_name=******=1', (err, data, response) => {
data.map(item => {
const temp = {
profileImage: item.user.profile_image_url,
name: item.user.name,
texto: item.text,
};
arr0.push(temp);
});
});
T.get('https://******.com/1.1/statuses/user_timeline.json?screen_name=u*******=1', (err, data, response) => {

data.map(item => {
const temp = {
profileImage2: item.user.profile_image_url,
name2: item.user.name,
texto2: item.text,
};
arr0.push(temp);
});    
});

return response.json([temp]);
});

最新更新