小编The*_*Hat的帖子

为什么来自JavaScript fetch API的响应对象是一个承诺?

从具有JavaScript fetch API的服务器请求时,您必须执行类似的操作

fetch(API)
  .then(response => response.json())
  .catch(err => console.log(err))
Run Code Online (Sandbox Code Playgroud)

在这里,response.json()正在解决它的承诺.

问题是,如果你想捕获404错误,你必须解决响应承诺,然后拒绝获取承诺,因为只有在catch出现网络错误时你才会结束.所以fetch调用就像是

fetch(API)
  .then(response => response.ok ? response.json() : response.json().then(err => Promise.reject(err)))
  .catch(err => console.log(err))
Run Code Online (Sandbox Code Playgroud)

这是一个更难阅读和推理的东西.所以我的问题是:为什么需要这个?将承诺作为回应价值有什么意义?有没有更好的方法来处理这个?

javascript ecmascript-6 es6-promise fetch-api

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

如何使用aws Lambda和python将一个Item放在aws DynamoDb中

在AWS Lambda中使用python,如何从DynamoDB表中放入/获取项目?

在Node.js中,这将是这样的:

dynamodb.getItem({
    "Key": {"fruitName" : 'banana'},
    "TableName": "fruitSalad"
}, function(err, data) {
    if (err) {
        context.fail('Incorrect username or password');
    } else {
        context.succeed('yay it works');
    }
});
Run Code Online (Sandbox Code Playgroud)

我需要的只是python等价物.

python-2.7 amazon-dynamodb aws-lambda

28
推荐指数
4
解决办法
5万
查看次数

计算Levenshtein距离的最有效方法

我刚刚实现了一个最佳匹配文件搜索算法,以找到与字典中字符串最接近的匹配.在分析我的代码之后,我发现绝大部分时间花在计算查询和可能结果之间的距离上.我目前正在使用2-D数组实现算法来计算Levenshtein距离,这使得实现成为O(n ^ 2)运算.我希望有人可以建议更快的方式做同样的事情.

这是我的实现:

public int calculate(String root, String query)
{
  int arr[][] = new int[root.length() + 2][query.length() + 2];

  for (int i = 2; i < root.length() + 2; i++)
  {
    arr[i][0] = (int) root.charAt(i - 2);
    arr[i][1] = (i - 1);
  }

  for (int i = 2; i < query.length() + 2; i++)
  {
    arr[0][i] = (int) query.charAt(i - 2);
    arr[1][i] = (i - 1);
  }

  for (int i = 2; i < root.length() + 2; i++)
  { …
Run Code Online (Sandbox Code Playgroud)

algorithm optimization levenshtein-distance

23
推荐指数
2
解决办法
2万
查看次数

接口与枚举

在接口和枚举之间,哪个更适合声明常量?为什么会这样?

java enums

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

使用?=.在正则表达式中

我看到了这句话

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9_#@%\*\-]{8,24}$
Run Code Online (Sandbox Code Playgroud)

在正则表达式,这是密码检查机制.我读了很少关于正则表达式的课程,但我从未见过组合?=.解释.

我想知道它是如何工作的.在示例中,它搜索至少一个大写字母,一个小写字母和一个数字.我想这就像"如果".

regex

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

Lambda表达式如何在Java字节代码中进行翻译

我试图在java中使用lambda表达式创建一个示例,我正在使用官方JDK8.我的例子运行成功.但是当我试图检查编译器如何将lambda表达式转换为字节代码时,这让我有些困惑.以下是我的例子的代码: -

public class LambdaTest {
    public Integer lambdaBinaryOpertor(BinaryOperator<Integer> binaryOperator) {
        return binaryOperator.apply(60, 72);
    }

    public static void main(String[] args) {
        LambdaTest test = new LambdaTest();
        BinaryOperator<Integer> binaryOperator = (a, b) -> a*b;
        System.out.println("Additon using Lambda BinaryOperator: "+test.lambdaBinaryOpertor(binaryOperator));
    }
}
Run Code Online (Sandbox Code Playgroud)

在这个文章,他们关于如何编译的lambda表达式转换成字节码讨论.根据该文档,lambda表达式转换为static方法和lambda表达式声明的位置,具有lambda static方法的引用.以下示例位于文章中:

//Source code
class A {
    public void foo() {
        List<String> list = ...
        list.forEach( s -> { System.out.println(s); } );
    }
} 

//After compile above code "translate code " 
class A {
    public …
Run Code Online (Sandbox Code Playgroud)

java lambda jvm compiler-theory java-8

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

Eclipse更新失败并显示消息"访问权限不足以应用此更新"

我在Windows 7,64位安装下运行Eclipse,我有管理员权限.

自从我几个月前第一次安装Eclipse以来,我已经能够通过" 帮助">"检查更新"功能使其保持最新状态 - 但几周前开始,它给出了消息

访问权限不足以应用此更新.

即使我以管理员身份运行Eclipse,我仍然会收到此消息.我该如何解决?

eclipse

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

是否存在"二进制排序"算法?

是否有一个名为"二进制排序"的排序算法?像合并排序,选择排序或其他类型的排序,是否存在二进制排序?

algorithm

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

如何将控制台内容重定向到Java中的textArea?

我试图在java中的textArea中获取控制台的内容.

例如,如果我们有这个代码,

class FirstApp {
    public static void main (String[] args){
        System.out.println("Hello World");
    }
}
Run Code Online (Sandbox Code Playgroud)

我想将"Hello World"输出到textArea,我必须选择什么actionPerformed?

java swing jtextarea

14
推荐指数
3
解决办法
5万
查看次数

正则表达式可选组捕获JAVA

我有一个用户指定的模式:

1998-2010:Make:model:trim:engine
Run Code Online (Sandbox Code Playgroud)

trim并且engine是可选的,如果存在,我应该抓住它们; 如果没有,匹配者至少应该验证YMM.

([0-9]+-*[0-9]+):(.*):(.*):(.*):(.*)
Run Code Online (Sandbox Code Playgroud)

如果所有三个都存在,则匹配,但如何使最后两个和仅两个字段可选?

java regex

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