我试图通过函数从服务访问值,但是它总是返回Promise对象,而不是我返回的值。 您可以查看下面的代码以获取详细信息。
function testMtd(flag) {
return fetch("apiURL", {
method: "GET",
json: true
})
.then((response) => {
if (response.ok) {
// console.log(response.json());
return response.json();
} else {
alert(
"Server returned " + response.status + " : " + response.statusText
);
}
})
.then((response) => {
console.log(response.flag);
return response.flag;
})
.catch((err) => {
console.log(err);
});
}
console.log("result: ", testMtd("IN"));
结果总是 结果:承诺{}
原样应该从return中获取标志URL
答案 0 :(得分:1)
您可以从“ then”回调中返回值,但是您必须意识到它将满足原始的Promise并返回Promise本身。您不能只同步异步过程。因此,您可以执行以下操作来获取您的价值:
product_feedname_id
您还可以将函数testMtd声明为异步:
testMtd('IN').then((result) => console.log(result));
然后,在其他异步方法的上下文中,您可以通过以下方式访问该值:
async function testMtd(flag) { ... }