从具有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)
这是一个更难阅读和推理的东西.所以我的问题是:为什么需要这个?将承诺作为回应价值有什么意义?有没有更好的方法来处理这个?
在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等价物.
我刚刚实现了一个最佳匹配文件搜索算法,以找到与字典中字符串最接近的匹配.在分析我的代码之后,我发现绝大部分时间花在计算查询和可能结果之间的距离上.我目前正在使用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) 我看到了这句话
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9_#@%\*\-]{8,24}$
Run Code Online (Sandbox Code Playgroud)
在正则表达式,这是密码检查机制.我读了很少关于正则表达式的课程,但我从未见过组合?=.解释.
我想知道它是如何工作的.在示例中,它搜索至少一个大写字母,一个小写字母和一个数字.我想这就像"如果".
我试图在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) 我在Windows 7,64位安装下运行Eclipse,我有管理员权限.
自从我几个月前第一次安装Eclipse以来,我已经能够通过" 帮助">"检查更新"功能使其保持最新状态 - 但几周前开始,它给出了消息
访问权限不足以应用此更新.
即使我以管理员身份运行Eclipse,我仍然会收到此消息.我该如何解决?
我试图在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?
我有一个用户指定的模式:
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 ×4
algorithm ×2
regex ×2
aws-lambda ×1
eclipse ×1
ecmascript-6 ×1
enums ×1
es6-promise ×1
fetch-api ×1
java-8 ×1
javascript ×1
jtextarea ×1
jvm ×1
lambda ×1
optimization ×1
python-2.7 ×1
swing ×1