小编Luc*_*non的帖子

条件/动态数组承诺所有

我有一个带有promise数组的函数,该数组可以有1到X个promise.

这些承诺基于条件进入数组.

我希望能够区分哪个API来自每个结果,而我无法实现一个干净的方法来实现它

let promises = [];

if (false) {
  let promise1 = request(toUrl);
  promises.push(promise1);
}
if (true) {
  let promise2 = request(toUrl);
  promises.push(promise2);
}

if (false) {
  let promise3 = request(toUrl);
  promises.push(promise3);
}

if (true) {
  let promise4 = request(toUrl);
  promises.push(promise4);
}

try {
  let result = await Promise.all(promises);
} catch (error) {
  console.log(error);
}
Run Code Online (Sandbox Code Playgroud)

所以,如果一切顺利,结果将是一系列结果.不知道哪个条件是真的,我如何知道result [0]是否是promise1,promise2或promise3的结果?

javascript promise async-await

4
推荐指数
2
解决办法
5690
查看次数

NodeJS:读取一个大的csv文件

所以我有一个70mb .csv文件,我想要解析并转换为json,尝试在500kb测试csv中进行json转换我发现了一个简单的解决方案与正则表达式.
问题是当我放入我的实际数据时,我不能再使用fs.readFileSync了,所以我需要使用流.
我的问题是:我如何使用流和正则表达式?假设我的流在可能的正则表达式匹配中切断缓冲区,我想如果发生这种情况,我将丢失该数据.此外,数据没有结构化,所以我没有意识到解析它的方式比正则表达式.
如果我不清楚我的解释,请告诉我,英语不是我的主要语言,但我也知道英语社区也是最快也最可靠的.

提前致谢.

regex json fs readfile node.js

3
推荐指数
1
解决办法
1670
查看次数

避免在es6中导出单例

如我所见,ES6导出对象文字的单例:

// module A
export const singleton = {
  user: 'a',
  asd: 'b'
}

setTimeout(() => console.log(singleton.user), 5000) // 'asd'

// module B
import { singleton } from './A'
singleton.user = 'asd'
Run Code Online (Sandbox Code Playgroud)

即:如果我更改了B中的A导出,也更改了A中以及所有导入A的模块,那么,我希望A导出对象的新实例而不是单例,我做到了:

// module A
export const getObject = () => ({ user: 'asd', asd: 'b' })
Run Code Online (Sandbox Code Playgroud)

那行得通,但是我在想,是否有一种更干净的方法来导出新实例?还是唯一的方法是导出应在B中调用的函数以获取新实例?

我想我也可以这样做,但是不能说服我:

// module A
export const getObject = (() => ({ user: 'asd', asd: 'b' }))()
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript ecmascript-6 reactjs es6-modules

3
推荐指数
1
解决办法
1963
查看次数