蓝鸟 - 承诺跟踪进度

时间:2018-03-12 10:41:34

标签: 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('some command').then(data => { 
  spinner.color = 'green';
  spinner.text = 'Command completed..'
  spinner.succeed();
}).catch(err => {
  spinner.color = 'red';
  console.log('Error occured..', err)
})

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

你实际上可以做到这一点,但不是你要问的方式。所以你有两个选择:

  1. 轮询另一个调用中的状态 - 承诺必须修改轮询调用可以获取的某些全局变量。
  2. 使用套接字通过发送事件将进度传达给客户端。
  3. 事实是,承诺是一种承诺,它既可以解决也可以被拒绝,其中没有进展状态。它可能会引发错误,但这就是全部。