我想使用 cafesList
和 placeList
变量,这样我就可以将这两个包含对象数组的变量传递给另一个函数,在那里我将把这两个变量的数据合并到一个对象数组中。
我试着将这两个变量声明为全局变量,并试着在外部使用,但得到的输出如下----------。
Promise {<pending>}
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: undefined
但当 fetchCafes()
和 fetchPlaces()
直接调用这些函数,这些函数会产生对象数组作为结果。
这就是fetch api方法-
function sendHttpRequest(method, url) {
return fetch(url, {
method: method,
})
.then((response) => {
if (response.status >= 200 && response.status < 300) {
return response.json();
} else {
return response.json().then((errData) => {
console.log(errData);
throw new Error("Something went wrong! - Server Side");
});
}
})
.catch((error) => {
console.log(error);
throw new Error("Something went wrong!");
});
}
这两个asyncawait方法包含了 cafesList
和 placeList
可变
async function fetchCafes() {
try {
const cafesList = await sendHttpRequest(
"GET",
"https://raw.githubusercontent.com/debojyoti/places-fake-rest-api/master/cafes.json"
);
console.log(cafesList);
} catch (error) {
console.log(error.message);
}
}
async function fetchPlaces() {
try {
const placeList = await sendHttpRequest(
"GET",
"https://raw.githubusercontent.com/debojyoti/places-fake-rest-api/master/places.json"
);
console.log(placeList);
} catch (error) {
console.log(error.message);
}
}
这对你来说是切割吗?
返回函数中的数据。
async function fetchCafes() {
try {
const cafesList = await sendHttpRequest(
"GET",
"https://raw.githubusercontent.com/debojyoti/places-fake-rest-api/master/cafes.json"
);
console.log(cafesList);
return cafesList;
} catch (error) {
console.log(error.message);
}
}
async function fetchPlaces() {
try {
const placeList = await sendHttpRequest(
"GET",
"https://raw.githubusercontent.com/debojyoti/places-fake-rest-api/master/places.json"
);
console.log(placeList);
return placeList;
} catch (error) {
console.log(error.message);
}
}
调用这两个函数,等待它们完成。然后处理结果。
Promise.all([fetchCafes(), fetchPlaces()]).then(arr => {
const cafes = arr[0];
const places = arr[1];
// merge them here...
});