gpt4 book ai didi

javascript - 使用 promise 内容结果映射文件名

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:42:25 25 4
gpt4 key购买 nike

我将 bluebird 用于 promises 并且我正在尝试获取多个文件的内容;我想要的是能够获取文件的内容及其文件名,例如:

result = { 'file1.md': 内容 }

我一直在尝试这样的事情:

var files = [
{ filename: 'README.md', url: 'assetFiles/README.md' },
{ filename: 'CHANGELOG.md', url: 'assetFiles/CHANGELOG.md' },
{ filename: 'ISSUES_TEMPLATE.md', url: 'assetFiles/ISSUES_TEMPLATE.md' },
{ filename: 'PULL_REQUEST_TEMPLATE.md', url: 'assetFiles/PULL_REQUEST_TEMPLATE.md' }];

return Promise.all(files.map(function(file) {
return [file.filename, fs.readFileAsync(file.url, 'utf-8')];
}))
.then(function(results){
console.log(results);
};

但是,我从中得到的是一个类似这样的数组:

result = [ ['file1.md', Promise ], ... ];

如何使用 bluebird 获取文件名和文件内容?

最佳答案

为了避免必须创建一个新的 promise (所谓的“ promise 构造函数反模式”):

var result = Promise.all(files.map(function(file) {
return fs.readFileAsync(file.url, "utf-8")
.then(data => [file.filename, data]);
});

result
.then(function(results){
console.log(results);
})
.catch(function(err) {
console.log(err);
});

return result;

关于javascript - 使用 promise 内容结果映射文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37625642/

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