我有一个从URL提取数据并应返回数据的函数:
mongodb-driver-rx
问题在于,当我导入此函数并尝试使用它时,它总是返回const fetchTableData = () => {
fetch('https://api.myjson.com/bins/15psn9')
.then(result => result.json())
.then(data => {
return data;
})
}
export default fetchTableData;
。
当我在控制台中记录函数内部的数据时,您可以看到它可用。当我尝试导入该功能时,该功能不起作用。
这是什么问题?为什么这样工作?
答案 0 :(得分:5)
尝试此=)您还必须从fetchTableData函数返回某些内容。
const fetchTableData = () => {
const fetchedData = fetch('https://api.myjson.com/bins/15psn9')
.then(result => result.json())
.then(data => {
return data;
})
return fetchedData;
}
export default fetchTableData;
或者您可以像这样返回它:
const fetchTableData = () => {
return fetch('https://api.myjson.com/bins/15psn9')
.then(result => result.json())
.then(data => {
return data;
})
}
export default fetchTableData;
答案 1 :(得分:3)
您需要将数据存储在全局变量中,或者将任何变量分配给fetch以获取返回数据。
//First way
fetch('https://api.myjson.com/bins/15psn9')
.then(result => result.json())
.then(data => {
console.log("data",data);
});
//Second way
let binData = null;
fetch('https://api.myjson.com/bins/15psn9')
.then(result => result.json())
.then(data => {
binData = data;
console.log("binData", binData);
});
这是工作示例。
答案 2 :(得分:1)
在您的代码中,您没有从fetchTableData
函数返回。仅来自第二个then()
回调。当一个函数没有返回值时,将返回undefined
。
尝试以下方法:
const fetchTableData = () => {
const myResponse = fetch('https://api.myjson.com/bins/15psn9')
.then(result => result.json())
.then(data => {
return data;
})
return myResponse;
}
export default fetchTableData;
现在发生的是以下情况:
then()
函数返回的响应正在返回数据。myResponse
的变量中。fetchTableData
返回此值。