从函数调用的api总是在VueJs中返回promise对象

时间:2020-09-23 20:57:50

标签: javascript promise fetch-api

我试图通过函数从服务访问值,但是它总是返回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

1 个答案:

答案 0 :(得分:1)

您可以从“ then”回调中返回值,但是您必须意识到它将满足原始的Promise并返回Promise本身。您不能只同步异步过程。因此,您可以执行以下操作来获取您的价值:

product_feedname_id

您还可以将函数testMtd声明为异步

testMtd('IN').then((result) => console.log(result));

然后,在其他异步方法的上下文中,您可以通过以下方式访问该值:

async function testMtd(flag) { ... }