繁体   English   中英

如何拦截承诺请求?

[英]How to intercept promise request?

我正在使用q许诺,并且我想向我展示许诺何时开始。 目前,我正在这样做:

getPromise().then(function() { spinner.hide() })

getPromise() fn中,我显示了微调器,所以getPromise看起来像:

function getPromise()
{
    spinner.show()
}

但是有什么方法可以拦截q中的then块,以便我可以将spinner.show添加到该拦截中?

你想得太多了

var spinOnPromise = function(p) {
  spinner.show()
  p.finally(function() {
    spinner.hide()
  });
  return p;
}

传递诺言,只要诺言未决,微调器就会继续执行。

编辑:可以这样做:

var spinOnPromise = function(p) {
  spinner.show()
  return p.finally(function() {
    return spinner.hide()
  });
}

如果您这样做,所不同的是,如果spinner.hide()返回一个承诺(称之为p1 ),承诺从返回spinOnPromise()就不会被解决,直到p1得到解决,但它会解析为相同的值p 有关详细信息,请参见此处

您可以执行此操作,但是我看不到为什么会这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM