当运行异步代码时,Promise执行程序回调在哪里?

编程入门 行业动态 更新时间:2024-10-08 18:38:19

当运行异步代码时,Promise执行程序<a href=https://www.elefans.com/category/jswz/34/1771356.html style=回调在哪里?"/>

当运行异步代码时,Promise执行程序回调在哪里?

Promise构造函数可以取executor callback function,这个问题是当执行者回调函数具有异步代码时,该回调函数在执行空间中的位置。

详细信息:

Promise对象表示一个可能尚不可用的值,但将来会在某个时候解析。它允许您编写异步代码,例如调用远程Web服务,您将创建Promise对象,该对象表示将来Web服务将返回的数据。

直到实际数据可用,Promise对象的作用就像是实际数据的代理。

下面的代码段描述了这种情况:

function getRandomJoke(){
  return new Promise((resolve, reject) => {
    const request = new XMLHttpRequest();

    request.open('GET', '');
    request.onload = () => {
      if (request.status === 200) {
        resolve(request.response); // we got data here, so resolve the Promise
      } else {
        reject(Error(request.statusText)); // status is not 200 OK, so reject
      }
    };

    request.onerror = () => {
      reject(Error('Error fetching data.')); // error occurred, reject the  Promise
    };

    request.send(); // send the request
  });
}

根据此thread中的讨论,Promise创建和执行程序回调函数的执行都发生在主线程上,只有解决回调将在事件循环的下一个计时周期执行。

如果是这种情况,上面的代码片段的执行程序函数具有进行API调用的异步代码-也会挂在主线程上,直到API返回数据。

回答如下:

如果是这种情况,上面的代码片段的执行程序函数具有进行API调用的异步代码-也会挂在主线程上,直到API返回数据。

更多推荐

当运行异步代码时,Promise执行程序回调在哪里?

本文发布于:2024-05-07 07:35:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755179.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:回调   代码   程序   Promise

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!