如何实现异步/等待
How to implement async / await
我想知道如何return response.json () 中的新对象数组在失眠时可见。
我从 API 接收各种信息,目标是 return 我的前端只是我创建的 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);
});
在负责我的人的帮助下,能够return更干净json,但现在我想知道如何实现aync / await来代替“setTimeout” ()”,因为函数在使用“setTimeout()”的“dalay”时只return一个数组。
谢谢!
问题是您的数组变量在路由函数之外,使其成为全局变量,这意味着即使您创建新的 GET 请求,也会存储以前的数组值。因此,您可以在路由函数中添加数组变量,也可以在发出 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]);
});
不必每次都推送一个新对象,只需创建并清空对象并在同一个对象上赋值。
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]);
});
我想知道如何return response.json () 中的新对象数组在失眠时可见。
我从 API 接收各种信息,目标是 return 我的前端只是我创建的 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);
});
在负责我的人的帮助下,能够return更干净json,但现在我想知道如何实现aync / await来代替“setTimeout” ()”,因为函数在使用“setTimeout()”的“dalay”时只return一个数组。
谢谢!
问题是您的数组变量在路由函数之外,使其成为全局变量,这意味着即使您创建新的 GET 请求,也会存储以前的数组值。因此,您可以在路由函数中添加数组变量,也可以在发出 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]);
});
不必每次都推送一个新对象,只需创建并清空对象并在同一个对象上赋值。
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]);
});