gpt4 book ai didi

javascript - 是否有另一种方法可以在 .map() 中添加 prop 并返回对象

转载 作者:行者123 更新时间:2023-11-28 19:25:34 25 4
gpt4 key购买 nike

这很好,但有点令人困惑,因为我必须打开 promise 并退回元素。

Promise.map(assets, function(asset){
asset.download_path = path.join(downloadDir, asset.name)
return existsAsync(asset.download_path).then(function(exists){
asset.exists = exists
return asset;
})
}).map(function(asset){
if(asset.exists) return asset
return downloadStream(asset.browser_download_url, asset.download_path).then(function(download){
return asset
})
})

最佳答案

你可以让它看起来更好,但总的来说就可以了:

return Promise.map(assets, function(asset){
return existsAsync(path.join(downloadDir, asset.name));
}).map(function(ex, i){
if(ex) return assets[i];
return downloadStream(assets[i].downloadUrl, assets[i].downloadPath).return(assets[i]);
});

或者,使用 ex6 语法:

import map from Promise

let exists = map(assets, a => existsAsync(path.join(downloadDir, a.name));
let download = a => downloadStream(a.downloadUrl, a.downloadPath).return(a);
return map(exists, (ex, i) => ex ? assets[i] : download(asset));

关于javascript - 是否有另一种方法可以在 .map() 中添加 prop 并返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27953860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com