Promise IF 条件始终为 false JavaScript
Promise IF condition always false JavaScript
我正在使用 fetch 进行 API 调用。成功调用 API 后,我得到了一个良好的状态代码,但在尝试评估状态代码时,我的 "if" 语句总是转到 "else",即使我的状态代码是“200”。请看下面的片段:
const fetch = require("node-fetch");
var accessToken = "Bearer <ACCESS TOKEN>";
var url = '<URL>';
var headers3 = {
'Authorization': accessToken
};
const delAPI = async url => {
try {
const response = await fetch(url, {method: "DELETE", headers: headers3});
const res = await response.status;
console.log(response.status);
return res.status;
} catch (error) {
console.log(error);
}
};
delAPI(url).then(
status => {
const res = status;
if (res === 200) {
console.log("Integration has been deleted");
} else {
console.log("Integration is either disabled or not installed");
}
});
我认为问题出在条件“(res === 200)”之内,它可能不会将 "res" 评估为异步函数 del[=26= 中的实际 response.status ]?我已经尝试了无数次迭代来解决这个问题,但到目前为止还没有运气。感谢任何帮助,让我朝着正确的方向前进....
const res = await response.status;
console.log(response.status);
return res.status;
你的问题是变量 res 已经有 response.status http 代码,但你又 returning res.status,这应该是未定义的。
您只想return res 或response.status。顺便说一句,我认为您不需要等待 response.status。这不是承诺。
附带说明一下,我们可以在这里做一些轻微的重构:
status => {
if (status === 200) {
console.log("Integration has been deleted");
} else {
console.log("Integration is either disabled or not installed");
}
});
我正在使用 fetch 进行 API 调用。成功调用 API 后,我得到了一个良好的状态代码,但在尝试评估状态代码时,我的 "if" 语句总是转到 "else",即使我的状态代码是“200”。请看下面的片段:
const fetch = require("node-fetch");
var accessToken = "Bearer <ACCESS TOKEN>";
var url = '<URL>';
var headers3 = {
'Authorization': accessToken
};
const delAPI = async url => {
try {
const response = await fetch(url, {method: "DELETE", headers: headers3});
const res = await response.status;
console.log(response.status);
return res.status;
} catch (error) {
console.log(error);
}
};
delAPI(url).then(
status => {
const res = status;
if (res === 200) {
console.log("Integration has been deleted");
} else {
console.log("Integration is either disabled or not installed");
}
});
我认为问题出在条件“(res === 200)”之内,它可能不会将 "res" 评估为异步函数 del[=26= 中的实际 response.status ]?我已经尝试了无数次迭代来解决这个问题,但到目前为止还没有运气。感谢任何帮助,让我朝着正确的方向前进....
const res = await response.status;
console.log(response.status);
return res.status;
你的问题是变量 res 已经有 response.status http 代码,但你又 returning res.status,这应该是未定义的。
您只想return res 或response.status。顺便说一句,我认为您不需要等待 response.status。这不是承诺。
附带说明一下,我们可以在这里做一些轻微的重构:
status => {
if (status === 200) {
console.log("Integration has been deleted");
} else {
console.log("Integration is either disabled or not installed");
}
});