Javascript 蓝鸟-承诺追踪进展
我想跟踪我将从Javascript 蓝鸟-承诺追踪进展,javascript,node.js,bluebird,Javascript,Node.js,Bluebird,我想跟踪我将从Node.js进行的承诺调用的进度,更清楚地说,我需要显示一个进度条,其中包含到达成功/错误回调函数的百分比 我查看了Bluebird文档,但没有发现与此相关的内容。如果我错了,请纠正我 我的代码附在下面 const getAsync = Promise.promisify(cmd.get, { multiArgs: true, context: cmd }) => // Need to show a progress bard over here getAsync('
Node.js
进行的承诺调用的进度,更清楚地说,我需要显示一个进度条,其中包含到达成功/错误回调函数的百分比
我查看了Bluebird
文档,但没有发现与此相关的内容。如果我错了,请纠正我
我的代码附在下面
const getAsync = Promise.promisify(cmd.get, { multiArgs: true, context: cmd })
=> // Need to show a progress bard over here
getAsync('some command').then(data => {
spinner.color = 'green';
spinner.text = 'Command completed..'
spinner.succeed();
}).catch(err => {
spinner.color = 'red';
console.log('Error occured..', err)
})
有人能解释一下吗?你确实能做到,但不是按照你要求的方式。因此,您有两种选择:
问题是,这个承诺就是一个承诺,它要么被解决,要么被拒绝,没有进展状态。它可能会抛出错误,但仅此而已。承诺只有三个阶段<代码>挂起、已解决、已拒绝。它们之间没有中间阶段。您希望如何报告进度百分比?你能用这段代码更新你的代码吗?你也检查过了吗?答应。合作计划?@Prakashsharma谢谢!这是有道理的。@HosseinPursultani将检查链接。。谢谢如果你在没有承诺的情况下使用它,
cmd.get
如何报告“进度”?感谢你的回复,伙计,Reg,point#1,我们有类似的功能吗?对于#1,我没有现成的解决方案,这只是一个概念。其思想是,在客户端,在发送请求时,触发一个setInterval()函数并定期调用某个URL,比如说每500到1000毫秒调用一次。检查的状态完成后,清除间隔。或者使用setTimeot()并在收到状态后检查它,必要时再次调用相同的函数。在服务器端,创建一个endpoind来报告当前状态,并在异步任务中修改当前状态。您可能需要使用一些快速数据库(Redis)来设置给定任务的ID和进度。