javascript - 使用 Promise.mapSeries 等待回调

标签 javascript node.js promise sails.js bluebird

我有一个:

new Promise(function (resolve, reject)
{
    return Promise.mapSeries(array, function(field)
    {
        var objCb = {};
        var params = {};

        objCb.ok = function () {};
        objCb.send = function (data)
        {
            errors.push(data.message);
        };
        objCb.negociate = function (err)
        {
            errors.push(data.message);
        };

        theFunction(params, objCb);
    }
}

我测试了多种解决方案,但不起作用:

        return Promise.promisify(theFunction(params, objCb), {multiArgs: true});

        return Promise.fromCallback(function (objCb)
        {
            return theFunction(params, objCb);
        }, {multiArgs: true}).spread(function (a)
        {
            console.log("==== 1");
            console.log(a);
        });

如果您有一个解决方案可以在mapSeries中等待回调或转换为promise(无需编辑函数(theFunction)),我将很高兴了解它。

提前致谢。

最佳答案

Promise.mapSeries 返回一个 Promise,因此您不需要重新包装它。

Promise.mapSeries(array, function(field)
{
    return new Promise( function(resolve, reject)
        {
        var objCb = {};
        var params = {};

        objCb.ok = function (resolve()) {};
        objCb.send = function (data)
        {
            reject(data.message);
        };
        objCb.negociate = function (err)
        {
            reject(data.message);
        };

        theFunction(params, objCb);
    }
}

注意:mapSeries 将在遇到第一个错误时停止。

关于javascript - 使用 Promise.mapSeries 等待回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41022341/

相关文章:

javascript - 如何在创建 Observer 时强制评估 Observer 中的表达式,而不是在发出值时

node.js - 使用node js将多条记录(由faker js生成)添加到mongoose中

javascript - 如何在 Node.js 中解析 "Cannot read property of undefined"

promise - 最佳实践 : Promises reject/throw

javascript - 如何重构这个 promise 回退?

javascript - 如果我使用 Enter 键提交表单,如何阻止 Angularjs 中的表单提交?

javascript - 我有一个包含三个元素的 CSS 导航栏。我想让每个链接显示自己的内容而不与另一个链接重叠

javascript - ExtJS 自定义验证器 colorpicker

node.js - 我们可以使用 postgresql 的解析服务器吗

javascript - 我可以在 Node 的 q Promise 中创建全局变量吗?