我刚刚开始学习Fetch API:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
这是我编写的代码片段,用来修补它:
fetch('http://swapi.co/api/people/1')
.then(function(response) {
var json = response.json();
console.log(json);
// Expected : { "name": "Luke Skywalker","height": "1.72 m", ... }
// Get : Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
});
Run Code Online (Sandbox Code Playgroud)
我本来希望从response.json()中获取一个JSON对象.
与使用JSON.parse()时获得的内容类似.
相反,我得到了一个承诺对象.
如果我扩大这里显示的承诺链......
return response.json().then(function(json) {
// process your JSON further
});
Run Code Online (Sandbox Code Playgroud)
...然后它工作:在以下承诺的then方法中,它显示为json.
为什么我不能在第一个promise的then()中检索JSON数据?
谁能请解释这里发生了什么?
我真的很感激.
我的一位同事坚持认为,在添加或删除元素之前,首先检查元素是否存在是很重要的.
因此他的代码中有很多构造,如下所示:
if (element.classList.contains('info')) {
element.classList.remove('info');
}
if (!element.classList.contains('hint')) {
element.classList.add('hint');
}
Run Code Online (Sandbox Code Playgroud)
我个人猜测如果用.contains()退出支票就不会发生任何事情.
应该是指:
如果班级没有,那么什么都没有删除.这句话毫无意义.
如果班级已经在那里,则不会添加任何内容.
我的同事是否对他坚持支票是正确的,因为不检查可能会导致一些麻烦?
或者我可以忘记检查?
当我想在插入后立即获得文本输入的值时,我使用'keyup'事件.
现在我在CodeReview问题中看到事件"输入"的用法是为了实现相同的目的.
CodeReview问题(第5行): https ://codereview.stackexchange.com/questions/141937/registration-form-validation-in-jquery
我有点修饰了.做了这个演示:
var box = document.querySelector('input');
box.addEventListener('keyup', function() {
console.log('keyup: %s', this.value);
});
box.addEventListener('input', function() {
console.log('input: %s', this.value);
});
/* RESULT
input: a
keyup: a
input: ab
keyup: ab
input: abc
keyup: abc
*/
Run Code Online (Sandbox Code Playgroud)
<input type="text" />
Run Code Online (Sandbox Code Playgroud)
可以看出:没有区别!
因此我的问题是:
keyup-event和input-event(用于读取文本输入的值)的用法是否有区别?
和:
是否有人应该选择一个而不是另一个?
我必须重构一个OPA5测试模块,因为目前大多数测试用例都失败了.在试图找到失败的原因时,我发现大多数测试都没有错误.
当你单独运行它们时,它们只能找到它.当您将它们作为模块运行时,会出现问题.表示您将它们作为一个组运行.一个接一个的测试.
当一个测试失败时,会出现问题.通常你执行iTeardownMyAppFrame()
作为
了最后的测试方法.用于删除使用过的iFrame.以便以下测试找到可以运行的未受影响的环境.
现在,当测试在某一行失败时,测试将停止,并且不会执行以下调用.
iTeardownMyAppFrame
永远不会执行,并且在先前(失败的)测试的环境中开始以下测试.所以它也可能失败,因为环境不如预期.
有没有办法确保每个测试都在新的iFrame中开始?
iTeardownMyAppFrame
在finally块中使用"try-finally"之类的东西.所以它在任何情况下都会被执行.无论测试是否有效或失败.
我正在阅读JavaScript - The Good Parts目前.所以我正在处理类型的扩充.我理解动机和实施.但是,如果我看一下代码......
Function.prototype.method = function(ident, funct) {
this.prototype[ident] = funct;
return this; // No idea. For what?
};
Run Code Online (Sandbox Code Playgroud)
...然后我不明白返回的目的.我把评论归来了.这没有效果.无论如何它都起作用了.
我的完整代码:
Function.prototype.method = function(ident, funct) {
this.prototype[ident] = funct;
return this;
};
Date.method('sayHello', function() {
alert(new Date().toString());
});
var myDate = new Date();
myDate.sayHello();
Run Code Online (Sandbox Code Playgroud)
它是什么意思?
我试图了解该Object.getClass()
方法的作用。
该文档说,它“返回对象的运行时类”。这种解释并不能帮助我理解该术语。
是否有人对“运行时类”是什么以及getClass()
它是什么做了简单的描述?
我想使用CSS属性“border-image”:https://developer.mozilla.org/de/docs/Web/CSS/border-image
但由于某种原因它只填充了元素的四个角:
我的代码:
.wrap {
width: 400px;
height: 300px;
margin: 50px auto;
position: relative;
}
.item {
width: 100px;
height: 100px;
background-color: lightGray;
border: 50px solid transparent;
border-image: url(http://lorempixel.com/50/50/) 50 50 50 50 stretch stretch;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrap">
<div class="item"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我有什么错吗?
我希望这个小图像能够在垂直和水平方向上重复。
这样灰色框就被图像图案包围起来了。
非常感谢任何帮助。
来自 JavaScript 我熟悉 NPM。
您可以在那里全局(通过使用 -g 标志)或在项目中本地安装包。在 Python 中,他们有这些虚拟环境。我仍然有点不确定为什么需要它们。我知道这是为了在一台机器上拥有不同版本的相同包。
是因为 Python 没有本地项目安装的概念吗?
所有包安装都是全局安装的,没有办法解决这个问题。在我看来就是这样...... 所以他们有虚拟环境吗?
我是对的?
我必须能够前后移动数组。无休止地并且不会使索引越界异常。
为了继续前进,我知道使用模运算符的一种优雅方式。对于向后移动,我不得不自己想办法。
这是我的解决方案:
const inc = document.getElementById("inc");
const dec = document.getElementById("dec");
const arr = ["One", "Two", "Three", "Four", "Five", "Six"];
let i = 0;
inc.addEventListener("click", () => {
i = (i + 1) % arr.length;
console.log(arr[i]);
});
dec.addEventListener("click", () => {
i = i - 1;
if (i === -1) {
i = arr.length - 1;
}
console.log(arr[i]);
});
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<button id="inc">Inc</button>
<button id="dec">Dec</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
有用。但是有没有更优雅的后退解决方案? …
该示例来自我正在做的 Kotlin 课程:
class Car {
var speed: Int = 0
get() = field
set(value) {
field = value
}
}
Run Code Online (Sandbox Code Playgroud)
如果我喜欢使用这样的主构造函数:
class Car(var speed: Int)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我将如何编写 getter/setter?
javascript ×5
algorithm ×1
arrays ×1
asynchronous ×1
border ×1
border-image ×1
css ×1
html ×1
java ×1
json ×1
kotlin ×1
oop ×1
python ×1
sapui5 ×1