gpt4 book ai didi

javascript - 我从下一行的函数返回后,JS promisified 函数会单独运行吗

转载 作者:行者123 更新时间:2023-11-29 15:56:16 28 4
gpt4 key购买 nike

我的需求是这样的

  1. 我想运行一个 axios 调用。
  2. 我不想在代码完成之前阻止它。
  3. 我也不想知道是 200 还是 500

这是我的实验代码。

function axios() {
console.log("axios calling...");
return new Promise((resolve, reject) => {
setTimeout(function() {
resolve(console.log("DONE!"));
}, 10000);
});
}

function run() {
axios();
console.log("Before");
return;
console.log("This should never log");
}

run();

根据这个实验,我认为即使我从函数中返回,promisified函数仍然在运行。这意味着它保证调用 axios

我担心的是,如果 axios 需要 10 分钟与 API 建立连接(不发送 POST 请求)如果我从下一行返回,axios 会等待 10 分钟并发送请求还是在我返回时中断建立的连接?

最佳答案

无论你是否调用 .then() ,promise 都会等待数据(注意有一些异常(exception)[1])。只要打开,页面就会继续处理并等待事件。

因此,如果请求需要 10 分钟,它将继续等待(除非服务器、网关、路由器或浏览器超时),直到您关闭页面/选项卡。

[1] Some libraries only triggers promise creation when you call .then() for example knex will keep returning a query object instead of a promise until you call .then() on the query object)

关于javascript - 我从下一行的函数返回后,JS promisified 函数会单独运行吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57721292/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com