javascript - AngularJS 中的 deferred.resolve()

标签 javascript angularjs deferred q

我需要拦截 ng-view 的变化并加载“loading div”覆盖层,直到加载所有新图像。

我正在尝试暂停 HttpInterceptor 中的 Promise 回调,但无法再次解析我的 Promise。

这里是一个例子:

return function (promise) {
    globalForTest = $q.defer();

    return promise.then(function (response) {
        console.log('first', response);
        return globalForTest.promise;
    }).then(function (response) {
        console.log('second', response);
        return response;
    });

http://jsfiddle.net/Lmvjh/

当我尝试调用 globalForTest.resolve(value) 时,没有任何反应,也没有错误。

最佳答案

它有效,但由于您在 Angular 生命周期之外调用resolve,因此您需要 explicitly call $scope.$apply使事物运转起来。否则不会调用回调。

Link to fixed JSFiddle

关于javascript - AngularJS 中的 deferred.resolve(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17426413/

相关文章:

javascript - Mongoose/MongoDb FindOneAndUpdate 未按预期工作

javascript - Meteor JS Router.go 重定向到同一页面

javascript - AngularJS 如何取消选择 ComboBox 中的所有内容?

jquery - 与 jquery 1 和 2 不同,jquery 3 ajax 处理程序仅在完成处理程序代码后才执行新添加的 html+js

javascript - 在 jquery 中使用 Deferred/When 来延迟函数的问题

javascript - 仅更新 Put Restify + SQLite3 上的某些字段

javascript - 未捕获的类型错误 : Cannot read property 'lat' of undefined Leaflet and VueJS

javascript - Protractor 是否适用于 Angular Material 对话框弹出窗口?

angularjs - 自定义指令中的错误处理

go - defer 会一直等到子程序执行完吗?