小编lon*_*556的帖子

是否可以将输入数组扩展为参数?

所以 Promise.all 将数组作为值传递给函数,我更愿意将数组值作为参数传递。

假设我有这个功能:

function printData(a,b,c){
   console.log(a,b,c)
}
Run Code Online (Sandbox Code Playgroud)

我想

Promise.all([1,2,3]).then(printData)
>> [1,2,3] undefined undefined
Run Code Online (Sandbox Code Playgroud)

改为打印这个

>> 1 2 3
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点:

Promise.all([1,2,3,4]).then(function(values){printData.apply(null, values)})
Run Code Online (Sandbox Code Playgroud)

使用扩展运算符?

我也试过

Promise.all([1,2,3]).then(printData.apply)
Run Code Online (Sandbox Code Playgroud)

但它返回一个错误

javascript promise ecmascript-6

5
推荐指数
2
解决办法
960
查看次数

为什么长度不作为数组对象中的键出现?

所以只是关于数组如何在java脚本中工作的问题,这里有一些行为;

var a = [1,2,3,4]
Object.keys(a)
>> ['0','1','2','3']
a['0']
>> 1
a.length
>> 4
a.something = 'value'
a
>> [1,2,3,4]
console.log(a)
>> [1, 2, 3, 4, something: "value"]
Object.keys(a)
>> ['0','1','2','3','something']
a.something
>> 'value'
a.length
>> 4
a.length = 5
a 
>>[1, 2, 3, 4, undefined]
console.log(a)
>>[1, 2, 3, 4, something: "value"]
Object.keys(a)
>> ["0", "1", "2", "3", "something"]
a.length = 'len'
> Uncaught RangeError: Invalid array length(…)
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么'length'不会显示为数组对象中的键?它几乎像on一样,虽然它似乎被解析为int.如果它不是功能或关键,它是什么?

javascript arrays

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

有没有办法限制Node(Express)的速度和响应时间?

我想看看我的网站如何应对缓慢的连接.

有没有办法限制快递以慢速或延迟响应?我知道我可以setTimeout在路径上实现调用,但静态资产呢?

javascript node.js express

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

创建新的 Response() 时如何设置“url”?

我正在按照示例为测试创建模拟响应。

稍微修改一下,它看起来像这样:

 var data = { foo: 'bar'};
 var blob = new Blob([JSON.stringify(data)], {type : 'application/json'});
 var init = { "status" : 200 , "statusText" : "SuperSmashingGreat!" };
 var resp = new Response(blob,init);

console.log(resp.url)

body: (...)
bodyUsed: true
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "SuperSmashingGreat!"
type: "default"
url: ""

Run Code Online (Sandbox Code Playgroud)

这在模拟数据和状态方面做得很好,但是,我也想模拟resp.url我不知道如何使用构造函数来设置它,并且[因为它是只读的]我无法在 resp 本身上设置它

resp.url 
>> ""
resp.url = 'www.test.com'
>> "www.test.com"
resp.url
>> ""
Run Code Online (Sandbox Code Playgroud)

那么如何设置url呢?

javascript fetch

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

如何从联合中提取单个类型?

假设我有这种类型:

type FooArray = IFoo[] | number[] | undefined

是否可以从中提取IFoo

typescript typescript2.0

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

什么是最简单的方法来检查两个对象之间的键是否匹配?

假设你有两个具有相当数量嵌套的对象......

const objA = {
  one: {
    a: 10,
    b: 'string1',
    c: {
      d: 10
    }
  },
  two : 'string1'
}

const objB = {
  one: {
    a: 20,
    b: 'string2',
    c: {
      d: 20
    }
  },
  two : 'string2'
}
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来检查它们之间的所有键是否匹配?

*匹配:两个对象在同一嵌套位置具有相同的键,没有额外的键,所以objAobjB匹配

javascript underscore.js lodash

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

设置没有公共IP的Amazon Elastic Beanstalk应用

我们有一个内部网络,该网络通过vpn连接连接到vpc。我们仅使用私有IP进行访问,而VPC具有用于实例访问Internet的NAT。我们尝试在实例上不要有任何公共IP。

我喜欢部署到beantalk的简易性,因此,我一直在非常努力地将其用作单实例而不是负载平衡。

但是,无论我做什么,都迫使我拥有一个公共dns和公共弹性IP,即使您取消单击“关联公共IP地址”,更糟糕的是,它甚至不让我手动取消关联,只是继续添加它。

无论如何,是否只能在您的VPC内使用beantalk而不提供公共地址?如果否,为什么不呢?

amazon-ec2 amazon-web-services amazon-elastic-beanstalk

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

获取concat以使用类似数组的对象

有些地方我将数组更改为像对象这样的数组:

let arr = ['a','b']
let arrLike = {...arr, length: arr.length}
console.log(arrLike)
> {0: "a", 1: "b", length: 2}
Run Code Online (Sandbox Code Playgroud)

它并不完美,但这允许我通过使用合并来覆盖数组.即:

> let a1 = [1,2,3], b1 = [1,2,3]
> Object.assign(a1, arr)
[ 'a', 'b', 3 ]
> Object.assign(b1, arrLike)
[ 'a', 'b']
Run Code Online (Sandbox Code Playgroud)

这是可取的,但我也想让concat工作,

['z'].concat(arr)
> ["z", "a", "b"] // good
['z'].concat(arrLike)
> ["z", {0: "a", 1: "b" length: 2}] // bad
Run Code Online (Sandbox Code Playgroud)

无论如何要修改arrLikeconcat会起作用吗?

javascript arrays ecmascript-6

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

是否可以扩展可能为Null的Type?

我有一个我希望扩展的类型,但是我对它的唯一引用将其定义为

type Foo = TypeIamInterestedIn | null

这是strictNullChecks在.

这是一个tsPlayground示例:

type Test1 = { name: string }
type Test2 = { name: string } | null

interface ExtendedTest1 extends Test1 {
    date: number
}

interface ExtendedTest2 extends Test2 { // type error an interface may only extend a class or another interface
    date: number
}
Run Code Online (Sandbox Code Playgroud)

反正只是选择非null类型来扩展吗?

typescript typescript2.0

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

是否可以从对象的联合中获取密钥?

最简单的例子

假设这种类型

type Foo = { a: number } | { b: string } | { c: boolean };
Run Code Online (Sandbox Code Playgroud)

是否有可能得到

type KeysOfFoo = 'a' | 'b' | 'c';
Run Code Online (Sandbox Code Playgroud)

我试过了,但没用

type Failed = keyof Foo; // never

Run Code Online (Sandbox Code Playgroud)

TS游乐场

typescript typescript3.0

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