使用打字稿在 sucess() over then() angularjs 上出现摘要错误

digest error on sucess() over then() angularjs with typescript

我在打字稿中创建了一个 angular js 服务到 post 一个文件,成功后我只是用 alert() 通知用户。

uploadFileToUrl = (file, uploadUrl) =>  {
    var fd = new FormData();
    fd.append('file', file);
    this.$http.post(uploadUrl, fd, {
        transformRequest: angular.identity,
        headers: { 'Content-Type': undefined }
    })
    .success(() => {
        alert("file uploaded");
    })
    .error(() => {
        alert("some error occured.");
    });
}

我可以调试代码并验证调用确实成功,但是当调用 returns 时,它显示成功,然后出现 摘要错误 但是如果我只是 return 服务的承诺和控制器使用 then() ,它工作正常。

uploadFileToUrl = (file, uploadUrl) => {
    var fd = new FormData();
    fd.append('file', file);
    return this.$http.post(uploadUrl, fd, {
        transformRequest: angular.identity,
        headers: { 'Content-Type': undefined }
    })
}

我想知道 success() 有什么问题,以及 then() 是否总是优于 success()

angular中的promise机制由$q提供。

几周前,我看到 promise.success()promise.error() 已弃用。两者都不再出现在文档中。

因此,我建议您避免使用 success()error(),而是使用 then(successFunction, errorFunction);

Documentation here

编辑

检查完源代码后,我可以向您保证 .success.error 不再存在于最新的 angular 源代码中

https://github.com/angular/angular.js/blob/master/src/ng/q.js#L3