在 AngularJS 中进行 Q promise 函数调用阻塞
Make a Q promise function call blocking in AngularJS
在 angular 服务中,我们公开了一个函数,该函数提供令牌并且应该被阻止,直到令牌被加载。
服务中的关键部分
....
function getToken(){
tokenPromise().then(
function(token){ return token;},
function(error){ return null;}
}
....
如何将其转换为阻塞函数代码?
所以 service.getToken();
是 blocking/synchronious 直到令牌在那里。
返回 promise/callback 不是解决方案。
在 JavaScript 中,没有 阻塞函数,除非它们是同步的。
您可以做的是返回 getToken
中的承诺,并使用 then
中的承诺继续它:
getToken().then(function(token) {
// Do stuff when I get the token
});
关于OP的最后更新...
Returning a promise/callback is not a solution.
这不是你能决定的。 JavaScript 无法阻止浏览器的 UI 线程,因此,您现在想要的方法是绝对不可能的。
在 angular 服务中,我们公开了一个函数,该函数提供令牌并且应该被阻止,直到令牌被加载。
服务中的关键部分
....
function getToken(){
tokenPromise().then(
function(token){ return token;},
function(error){ return null;}
}
....
如何将其转换为阻塞函数代码?
所以 service.getToken();
是 blocking/synchronious 直到令牌在那里。
返回 promise/callback 不是解决方案。
在 JavaScript 中,没有 阻塞函数,除非它们是同步的。
您可以做的是返回 getToken
中的承诺,并使用 then
中的承诺继续它:
getToken().then(function(token) {
// Do stuff when I get the token
});
关于OP的最后更新...
Returning a promise/callback is not a solution.
这不是你能决定的。 JavaScript 无法阻止浏览器的 UI 线程,因此,您现在想要的方法是绝对不可能的。