小编Cka*_*ppo的帖子

如何避免 TS 三斜杠指令中丑陋的导入

我有一个嵌套的订单结构。如果我现在使用三斜杠指令,我有一个很长的数据路径,具体取决于文件,如下所示:

/// <reference path="../../../../global.d.ts" />
Run Code Online (Sandbox Code Playgroud)

我现在问自己的问题是有办法阻止它这样做吗?

types typescript

6
推荐指数
1
解决办法
2023
查看次数

如果对象中的属性不存在,如何从数组中删除对象

我有以下数据收集

[{
 id: '1',
 date: '2017-01-01',
 value: 2
 },
 {
 id: '2',
 date: '2017-01-02',
 value: 3
 },
 {
 id: '3',
 value: 3
 },
 id: '4',
 date: '2017-01-02',
 value: 3
 }]
Run Code Online (Sandbox Code Playgroud)

我想删除任何没有“日期”属性的对象。在上面的示例中,应删除 id 为 3 的对象。

完成的对象应该是这样的

[{
 id: '1',
 date: '2017-01-01',
 value: 2
 },
 {
 id: '2',
 date: '2017-01-02',
 value: 3
 },
 id: '4',
 date: '2017-01-02',
 value: 3
 }]
Run Code Online (Sandbox Code Playgroud)

我试图用 lodash 查找并删除一个未定义的值。这是行不通的。该对象看起来与它进入时完全一样。

  _.each(obj, (val) => {
    _.remove(val, value => value['XXX-BUDAT'] === undefined);
   });
Run Code Online (Sandbox Code Playgroud)

我如何为此目的使用 lodash?

提前致谢

javascript arrays lodash

5
推荐指数
1
解决办法
4509
查看次数

请求承诺下载pdf文件

我收到了多个pdf文件,必须从REST-API下载.

在auth和connect之后,我尝试使用request-promise下载文件:

const optionsStart = {
  uri: url,
  method: 'GET',
  headers: {
      'X-TOKEN': authToken,
      'Content-type': 'applcation/pdf'
    }
  }
  request(optionsStart)
    .then(function(body, data) {
      let writeStream = fs.createWriteStream(uuid+'_obj.pdf');
      console.log(body)
      writeStream.write(body, 'binary');
      writeStream.on('finish', () => {
        console.log('wrote all data to file');
      });
      writeStream.end();
    })
Run Code Online (Sandbox Code Playgroud)

请求创建一个pdf(大约1-2MB),但我无法打开它.(Mac预览显示空白页面和adobe show =>

打开此文档时出错.阅读本文件存在问题(14).

我没有关于下载文件的API端点的信息.只是有这个卷曲:

curl -o doc.pdf --header "X-TOKEN: XXXXXX" 
http://XXX.XXX/XXX/docs/doc1
Run Code Online (Sandbox Code Playgroud)

我的错误在哪里?

更新:

我在编辑中打开了文件,文件看起来像这样: 文件预览

没有任何经验:-)

request node.js request-promise

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

Jest:如何测试返回函数的函数

我想用 Jest 测试几个功能。所有函数都是返回函数的函数。

一个简单的例子:

export function csl(foo) {
  return function(bar) {
      return(bar)
     };
}
Run Code Online (Sandbox Code Playgroud)

现在我想测试输入 = 返回是否是。我试试:

  expect(() => csl("foo")).toBe("foo") // = received: [Function anonymous]

  expect(csl("foo")).toBe("foo") // = received: undefined
Run Code Online (Sandbox Code Playgroud)

我如何测试这些功能?

javascript jestjs

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

异步循环不返回值

我有一个异步循环来检查数组,如果找到特定值,它会循环另一个数组以匹配找到的值。

所以我的第一个实现。我打开一个异步循环并从数据库获取数据

mergedObject = [];
 array1.forEach(async (item) => {
  if (item.id == 'XXX') {
   const dbInfo = await readDB();
Run Code Online (Sandbox Code Playgroud)

数据库信息,我想推入一个数组并构建一个 json 对象。

      dbInfo.forEach(async (itemDB) => {
    object.push({
      id,
      name,
      ..
      ..
Run Code Online (Sandbox Code Playgroud)

在循环结束时,我将新对象与“旧”对象合并

  mergedObject = _.map(oldObject, (objs) => {
    _.assign(objs, _.find(object, {
      id: objs.id,
    }));
  });
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在 forEach 内我正确地获取了日志。但是如果我想在 forEach (array1) 之外使用 mergedObject 我得到log: []

这是我第一次尝试异步。我之前使用过回调。如何访问 forEach 之外的 mergedObject?

node.js async-await

-1
推荐指数
1
解决办法
1147
查看次数