javascript - 返回已解决的 promise 值

标签 javascript promise

  const displayCharacters =  async () => { 
    if(filteredCharacters !== 'default'){
      const a = filteredCharacters.map(e => e.name);
      const options = {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ 'data' : a })
      };

      const b = await fetch("/image",options).then(res => res.json())
      return b; 

    }else{
      return "yikes";
    }
  }


  console.log(displayCharacters());

我有这个获取请求,但是当我记录结果时,这是我看到的:

Promise {<resolved>: "yikes"}
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: "yikes"

我只想要 promiseValue 而不是它周围的所有东西。我该怎么做呢?

最佳答案

async 函数立即返回一个 promise,无需等待 promise 解决。您可以在函数内改为使用 console.log:

  const displayCharacters =  async () => { 
    if(filteredCharacters !== 'default'){
      const a = filteredCharacters.map(e => e.name);
      const options = {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ 'data' : a })
      };
      try {
        const b = await fetch("/image",options).then(res => res.json());
        console.log(b);

        //the better practice is however, to do like:
        const b = await fetch("/image",options)
        const result = await b.json(); 
        console.log(result );
      }
      catch(err) {
         console.log(err);
      }

    }else{
      console.log("yikes");
    }
  }


displayCharacters();

关于javascript - 返回已解决的 promise 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60240476/

相关文章:

javascript - 为什么不能删除EventListener

javascript - jQuery 中 deferred.resolveWith() 在哪里定义?

javascript - 如何 promise 我编写的简单异步函数?

javascript - 以 block 的形式运行 HTTP 请求

javascript - 倒计时器到特定时间

javascript - 允许选择开始和选择结束的富文本编辑器

javascript - 如何阻止 Bootstrap div/thumbnail 根据屏幕进行调整

javascript - 如何从 lambda 函数返回字符串?

javascript - mongoose pre hook findOneAndUpdate 修改从另一个集合获取的某些字段

javascript - 如何删除页面上的所有空白或空格 div?