JavaScript 中单个函数的 Concat 结果
Concat results of single function in JavaScript
const example = e => {
console.log(e);
};
每次调用 API 时,example()
或者 e
会返回不同的字符串,例如:
string one
string two
string three
有没有办法将所有这些字符串连接到一个数组中?
只需在某处声明一个数组并将值推送到那里。
let arr = [];
const example = item => {
arr.push(item);
console.log(arr);
};
let arr = [];
const example = e => {
arr.push(e);
console.log(e);
};
首先,我建议使用发送请求的功能,例如sendRequest()
。如果您访问数据库或某些网站,您必须声明一个 async
函数,因为它不确定,当您收到响应时。然后,无论 api 调用成功与否,您的 sendRequest
函数都可以 return 一个 javascript 对象。关键字 await
等待,直到承诺得到解决。
现在回答您的问题:如果您的调用成功,只需将您的结果推送到外部定义的数组 apiResults
,就是这样。
const apiResults = [];
async function sendRequest() {
try {
const apiResult = await axios.get('https://jsonplaceholder.typicode.com/todos/1');
const apiSuccess = Boolean(apiResult);
if (apiSuccess) {
apiResults.push(apiResult);
}
return { ok: apiSuccess, data: apiResult };
} catch (err) {
return { ok: false, data: {} };
}
}
(async function test() {
console.log('Before', apiResults);
const response = await sendRequest();
console.log('After', apiResults);
})();
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
const example = e => {
console.log(e);
};
每次调用 API 时,example()
或者 e
会返回不同的字符串,例如:
string one
string two
string three
有没有办法将所有这些字符串连接到一个数组中?
只需在某处声明一个数组并将值推送到那里。
let arr = [];
const example = item => {
arr.push(item);
console.log(arr);
};
let arr = [];
const example = e => {
arr.push(e);
console.log(e);
};
首先,我建议使用发送请求的功能,例如sendRequest()
。如果您访问数据库或某些网站,您必须声明一个 async
函数,因为它不确定,当您收到响应时。然后,无论 api 调用成功与否,您的 sendRequest
函数都可以 return 一个 javascript 对象。关键字 await
等待,直到承诺得到解决。
现在回答您的问题:如果您的调用成功,只需将您的结果推送到外部定义的数组 apiResults
,就是这样。
const apiResults = [];
async function sendRequest() {
try {
const apiResult = await axios.get('https://jsonplaceholder.typicode.com/todos/1');
const apiSuccess = Boolean(apiResult);
if (apiSuccess) {
apiResults.push(apiResult);
}
return { ok: apiSuccess, data: apiResult };
} catch (err) {
return { ok: false, data: {} };
}
}
(async function test() {
console.log('Before', apiResults);
const response = await sendRequest();
console.log('After', apiResults);
})();
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>