Javascript 承诺返回空值
我正在学习如何使用承诺来完成异步任务 我正在努力解决一个我无法解决的问题,在搜索和阅读了这里的其他帖子后,我不知道如何解决它Javascript 承诺返回空值,javascript,promise,Javascript,Promise,我正在学习如何使用承诺来完成异步任务 我正在努力解决一个我无法解决的问题,在搜索和阅读了这里的其他帖子后,我不知道如何解决它 function processStuff(things) { var result = {}; var pictures = checkPictures(data); if (pictures.length > 0) { return new Promise(function(resolve) {
function processStuff(things) {
var result = {};
var pictures = checkPictures(data);
if (pictures.length > 0) {
return new Promise(function(resolve) {
var promisesArray = [];
pictures.forEach(function(picture) {
promisesArray.push(getBase64(picture));
});
Promise.all(promisesArray).then(function(processedPictures) {
result = getOtherSutff(things);
var insertedElements = Object.keys(result).length;
for (var index = 0; index < processedPictures.length; index++) {
var item = processedPictures[index];
result['thingId-' + (++insertedElements).toString()] = item;
}
});
resolve(result); (1)
});
} else {
return new Promise(function(resolve) {
result = getOtherSutff(things);
resolve(result);
});
}
}
我在终端上看到:{}
我的错误在哪里?我做错了什么
问候。您需要将您的
解决(结果)
移到您的承诺中。所有回调:
Promise.all(promisesArray).then(function(processedPictures) {
result = getOtherSutff(things);
var insertedElements = Object.keys(result).length;
for (var index = 0; index < processedPictures.length; index++) {
var item = processedPictures[index];
result['thingId-' + (++insertedElements).toString()] = item;
}
resolve(result); // result is available here
});
resolve(result); // result has not been set here
Promise.all(promisesArray).然后(函数(processedPictures){
结果=getOtherSutff(事物);
var insertedElements=Object.keys(result).length;
对于(var index=0;index
您需要将您的解决方案(结果)
移到您的承诺中。所有回调:
Promise.all(promisesArray).then(function(processedPictures) {
result = getOtherSutff(things);
var insertedElements = Object.keys(result).length;
for (var index = 0; index < processedPictures.length; index++) {
var item = processedPictures[index];
result['thingId-' + (++insertedElements).toString()] = item;
}
resolve(result); // result is available here
});
resolve(result); // result has not been set here
Promise.all(promisesArray).然后(函数(processedPictures){
结果=getOtherSutff(事物);
var insertedElements=Object.keys(result).length;
对于(var index=0;index
您在承诺的之外调用解决然后在承诺的之外调用解决然后在承诺的之外调用解决然后在承诺的之外调用承诺的所有人()
。如果彻底摆脱新的承诺()
并且只返回承诺。全部(…)。然后(…)
取而代之,谢谢您的回复,但我认为你必须解决“父母”的承诺,而不是“孩子”返回新承诺…“不要等到”承诺。所有…“得到解决?这就是为什么我把解决方案放在外面的原因:/如果完全摆脱new Promise()
,只返回Promise.all(…)。然后(…)
?谢谢你的回答,但我认为你必须解决“家长”的承诺,而不是“孩子”的承诺返回新承诺…“不要等到”承诺。所有…“得到解决?这就是我把决心放在外面的原因:/