将Array.map()的结果添加到一个数组中

时间:2018-12-12 21:12:07

标签: javascript arrays promise

我有一个字符串数组['string1', 'string2'],我想将每个字符串转换成(例如:blob:http://something-new),但是得到的结果是(2) [Promise, Promise]。如何获得解析值?

这是代码

const results = id.map(async assetId => {
    const responseIds = await API.assets.getAssetFileById(assetId);
    let asset = responseIds.data.asset;
    const urlCreator = window.URL || window.webkitURL;
    const blobFile = await file_helper.dataUrlToBlob(asset.file);

    return asset.file = await urlCreator.createObjectURL(blobFile);
});

console.log(results) // (2) [Promise, Promise]

预期输出:

console.log(results) // (2) ['blob:http://something-new1', 'blob:http://something-new2']

1 个答案:

答案 0 :(得分:2)

Promise.all(results).then(function(urls) {
  console.log(urls);
});

您需要等待所有诺言解决,然后您才能使用它们。