当前位置: 首页 > 知识库问答 >
问题:

如何检索异步获取PromiseValue?

酆俊远
2023-03-14

我试图以异步方式获取获取结果,如下所示:

var result = await fetch(`/api/collection/get-collection.php?name=${this._name}`, {method: `GET`});
console.log(result.json());

但是当我看控制台时,我得到了这个:

Promise {<pending>}
  __proto__: Promise
  [[PromiseStatus]]: "resolved"
  [[PromiseValue]]: Object
    content: (176) [...]
    extra: {...}
    message: ...
    __proto__: Object

所以我觉得当谈到console.logpromise仍然悬而未决?(有一个工具提示说“刚才评估了下面的值”,所以我猜它是在promise解决时更新的?当然,下面的代码(此处未显示)不起作用,因为它需要读取的返回值。我甚至不知道如何访问PromiseValue。

进行异步读取调用的正确方法是什么?

附言:我用的是香草JS。

共有1个答案

微生新翰
2023-03-14

您可以像这样使用async await执行fetch调用。

try {

   const response = await fetch(`/api/collection/get-collection.php?name=${this._name}`, {method: `GET`});

   const result = await response.json()

   // do something with the data
   console.log(data);

} catch(error) {

  // your error handling code

  console.log(error)

}

如果不想使用async Wait,则可以使用。然后来解决promise。

 fetch(`/api/collection/get-collection.php?name=${this._name}`, {method: `GET`})
        .then(res => res.json())
        .then(data => {
           // do something with the data
           console.log(data)
         })
        .catch(error => {
            // your error handling code
            console.log(error)
         });

 类似资料:
  • 我有一个简单的应用程序与一个共同的堆栈: 后端服务器(Rails) 前端应用程序(Vue) 数据库(PG) Vue应用程序使用Vuex存储库的操作从后端获取数据,如下所示: 在组件的已创建生命周期挂钩中调用该操作,如下所示: 我上面写的代码中有一个问题,我实际上在模板中使用了计算值“participation”,如下所示: 当然,因为我在组件呈现自身时使用了参与,所以我从getter方法中得到了这

  • 问题内容: 当有字符可用时,是否有一种优雅的方法来触发事件?我想避免投票。 问题答案: 您将必须创建一个单独的线程以阻止读取,直到有可用的线程为止。 如果您不想实际消耗输入,则必须用内部缓冲区包装它,读入缓冲区,然后喊叫,并在要求输入时从缓冲区返回数据。 您可以这样解决:

  • TimeoutException:消息:异步脚本超时:30秒内未返回结果(会话信息:chrome=41.0.2272.118)(驱动程序信息:chromedriver=2.11.298604(75EA2FDB5C87F133A8E1B8DA16F6091FB7D5321E),平台=Windows NT 6.1 SP1x86_64)

  • 我正在用异步JobLauncher在Spring Batch中配置一个(长时间运行的)作业,我有两个RESTendpoint: null 谢谢朱利奥

  • 我了解到JNI接口指针(JNIEnv*)仅在当前线程中有效。假设我在本机方法中启动了一个新线程;它如何异步将事件发送到Java方法?因为这个新线程不能引用(JNIEnv*)。存储(JNIEnv*)的全局变量显然不起作用?

  • 我正在尝试使用新的reactuseReucker API获取一些数据,并停留在我需要异步获取它的阶段。我只是不知道如何:/ 如何将数据提取放在switch语句中,还是不应该这样做? 我试图这样做,但它不与异步工作;