javascript - 在bluebird中获取 "Finally is not a function",为什么?

标签 javascript bluebird

我已经像这样包含了 Bluebird...

<script src="../../js/libs/bluebird.min.js" type="text/javascript"></script>

当我运行以下代码时...

requestEvent(request, src)

        .then(function (response) {

            ...
        })
        .finally(function () {

            ...
        });

function requestEvent(request, src) {

    return new Promise(function (resolve, reject) {

        $.ajax({
            url: 'mywebsite',
            type: "POST",
            success: function (response) {

                if (response.status == 0) {

                    reject(response.message);
                }

                resolve(response);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {

                reject(XMLHttpRequest.responseText);
            }
        });
    });
}

我明白了...

TypeError: requestEvent(...).then(...).finally is not a function

为什么最终不存在?

这是客户端/浏览器代码。

最佳答案

finally() 不是 Promise 的函数

阅读此内容: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

您需要检查bluebird的路径是否正确。

更新 2018: .finally() 现在(TC39 第 4 阶段;已完成)现在是官方规范的一部分,如您所见在上面的同一链接中或 in this specific page 。然而not many browsers support it yet .

关于javascript - 在bluebird中获取 "Finally is not a function",为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46367341/

相关文章:

javascript - 对没有返回数据的函数的 promise

javascript - 如何在不使用 JavaScript 的情况下最好地重定向网页?

javascript - 防止已经改变颜色的单元格再次改变颜色

javascript - Reactjs 搜索 json

javascript - 如何使用更好的 saveAsync 来扩展 Mongooose 原型(prototype)

node.js - 使用 for 循环和 pg​​-bluebird

javascript - 链接超时导致上次超时被拒绝?

javascript - fabricjs 中对象的上下文菜单

javascript - 面临 JQ 网格问题

javascript - Promise.all 与 try/catch 模拟