使用 Promise.mapSeries 等待回调
Wait callback with Promise.mapSeries
我有一个:
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
returns 一个承诺,所以你不需要重新包装它。
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
将在遇到第一个错误时停止。
我有一个:
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
returns 一个承诺,所以你不需要重新包装它。
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
将在遇到第一个错误时停止。