我是React-native(和javascript)的新手,我正努力做到这一点。
我有一个有用户的api
https://api.example.com/users/
我想要检查api在点击端点时是否返回值
https://api.example.com/users/ {用户名}
这样的事情:
async function getUsersFromApi(userName) {
try {
let response = await
fetch('https://api.example.com/users/'+userName);
let responseJson = await response.json();
//if endpoint returns response
// alert("endpoint exists")
} catch(error) {
console.error(error);
}
}
我在评论中写的部分是我正在努力的部分。任何帮助将不胜感激。
答案 0 :(得分:2)
response.ok属性将告诉您请求是否成功,这是确定资源是否存在的常用方法。如果不存在具有给定username
的用户,则REST API应返回404 error,这将导致response.ok
为false
。
const response = await fetch('https://api.example.com/users/'+userName);
const userExists = response.ok;
请注意,如果您根本不打算使用响应正文,则更适合执行HEAD请求。这指示服务器不应返回响应主体并跳过任何可能浪费的相关计算。因此,请求在时间和带宽上都更有效。
const response = await fetch('https://api.example.com/users/'+userName. {
method : 'GET'
});
const userExists = response.ok;
假设你有一个users
数组,你应该使用Array#some()循环遍历它,并确定其中的一个对象是否有一个与你的username
匹配的用户名字段功能
const userExists = users.some((user) => {
return user.username === username;
});
console.log(userExists); // true or false
另一方面,如果您需要返回该用户对象而不是布尔值,则应使用Array#find()代替。
const user = users.find((user) => {
return user.username === username;
});
console.log(user); // user object or undefined
对于find()
,请务必处理未找到用户并返回undefined的情况。如果您不小心,可能最终会访问undefined
上的某个属性,这会引发错误。