我正在尝试使用Node.JS应用程序发出和接收API请求。它使用Axios向另一台服务器发出get请求,并从它接收的API调用中接收数据。第二个代码段是脚本从调用返回数据的时间。它实际上会将其写入控制台,但不会在第二个API中将其发送回。
function axiosTest() {
axios.get(url)
.then(function (response) {
console.log(response.data);
// I need this data here ^^
return response.data;
})
.catch(function (error) {
console.log(error);
});
}
...
axiosTestResult = axiosTest();
response.json({message: "Request received!", data: axiosTestResult});
我知道这是错误的,我只是想找到一种方法让它发挥作用。我能从中获取数据的唯一方法似乎是通过console.log,这对我的情况没有帮助。
你可以用一个简单的回调函数来填充你想要的数据,比如我们有一个名为lst
的列表,我们想要填充它,我们有一个函数来填充列表,
const lst = [];
const populateData = (data) => {lst.push(data)}
现在我们可以将回调函数传递给正在进行axios调用的函数,当我们从响应中获取数据时,我们可以对列表进行处理。
现在,我们使我们的函数,使请求和传递人口数据
作为回调函数。
function axiosTest (populateData) {
axios.get(url)
.then(function(response){
populateData(response.data);
})
.catch(function(error){
console.log(error);
});
}
我知道这个帖子很旧。但是我已经看到一些人尝试使用async和Wait来回答问题,但都弄错了。这将为任何新的参考资料清理它
async function axiosTest() {
try {
const {data:response} = await axios.get(url) //use data destructuring to get data from the promise object
return response
}
catch (error) {
console.log(error);
}
}
问题是原始的axiosTest()
函数没有返回promise。为了清晰起见,这里有一个扩展的解释:
function axiosTest() {
// create a promise for the axios request
const promise = axios.get(url)
// using .then, create a new promise which extracts the data
const dataPromise = promise.then((response) => response.data)
// return it
return dataPromise
}
// now we can use that data from the outside!
axiosTest()
.then(data => {
response.json({ message: 'Request received!', data })
})
.catch(err => console.log(err))
函数可以写得更简洁:
function axiosTest() {
return axios.get(url).then(response => response.data)
}
或使用异步/等待:
async function axiosTest() {
const response = await axios.get(url)
return response.data
}
问题内容: 如何从AsyncTask中获取数据?我的MainActivity正在调用触发AsyncTask的DataCall.getJSON函数,但是我不确定如何将数据返回到原始Activity。 调用DataCall的MainActivity应该返回一个字符串并将其保存在 数据通话: 问题答案: 对我来说,关键是创建一个名为URLWithParams的类或其他类,因为AsyncTask将只允许发
问题内容: 我正在尝试使用Node.JS应用程序来发出和接收API请求。它使用Axios对其接收的API调用接收的数据向另一个服务器发出get请求。第二个片段是脚本从调用中返回数据的时间。它实际上会接收并写入控制台,但不会在第二个API中将其发送回去。 … 我知道这是错误的,我只是想找到一种使它起作用的方法。我似乎只能从中获取数据的唯一方法是通过console.log,这对我的情况没有帮助。 问题
问题内容: 我需要兑现承诺,以便可以通过封闭函数将其返回。我知道,由于正常的JavaScript范围,我可能无法按照编码的方式进行操作。有什么办法可以做到吗? 位于#1 的 console.log 会生成正确的数据。 console.log #2总是产生’a’; 任何指针将不胜感激。 问题答案: 许诺背后的基本原则之一是它是异步处理的。这意味着您无法创建承诺,然后立即在代码中同步使用其结果(例如,
C++ 数组 C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。 如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下:int * myFunction() { . . . } 另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。 现在,让我们来看下面的函数,它会生成 10 个随机数,并
现在我们已经学习了带返回值的函数,我来告诉你一个秘密:main函数并非真的应该是一个void函数。main应该返回一个整数: int main () { return 0; } 通常,main的返回值为0,它表明程序成功执行。出错时一般返回-1,或其他的用以指明发生了哪种错误的值。 当然,你可能想知道这个值返回给谁了,因为我们自己从来没有调用过main。其实是这样,当系统执行程序时,它通过调
我正在等待(从USSD请求中)检索一个值,以便返回它(getUSSD):