为了账号安全,请及时绑定邮箱和手机立即绑定

将 Promise.then() 内的递归调用转换为循环?

将 Promise.then() 内的递归调用转换为循环?

大话西游666 2023-09-28 16:09:32
我需要在 .then() 方法内递归调用函数本身。像这样的东西:function poll(params) {     const returned_promise = read_from_backend(some_url, some_params);    returned_promise       .then(some_process_func)       .then(r => {            poll(some_params); // recursive call        })   }poll(starting_params);有没有办法在 while 循环中编写这个算法,而不阻塞主线程?
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

这是一种用 while 循环编写算法的方法。由于我们通过 Promises 处理异步代码,因此我们不会阻塞主线程。


async function poll(params) {

    while (true) {

        await new Promise(resolve => setTimeout(resolve, 1000)) // perhaps sleep a bit between polls

        const returned_promise = read_from_backend(some_url, some_params);

        const r = await returned_promise.then(some_process_func)

    }

}


poll(starting_params);


查看完整回答
反对 回复 2023-09-28
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信