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(…)。然后(…)
?谢谢你的回答,但我认为你必须解决“家长”的承诺,而不是“孩子”的承诺返回新承诺…“不要等到”承诺。所有…“得到解决?这就是我把决心放在外面的原因:/