我是功能性 Javascript 和承诺的新手。下面的代码很好用,直到我取消注释 this.writeDataToRealm(data.data)。然后我收到这个错误:
可能未处理的承诺拒绝。无法读取未定义的属性“writeDataToRealm”
如何将数据发送到函数进行进一步处理?
...
fetch(url, {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
Authorization: "Bearer " + token
},
}).then(function(response) {
if (response.status !== 200) {
throw Error(response.statusText);
} else {
return response.json().then(function(data) {
console.log(data);
return data.data;
})
}
}).then(data => {
this.writeDataToRealm(data.data)
}, err => {
console.log('Fetch Error: ', err);
});
}
writeDataToRealm(data) {
console.log(data[0]);
realm.write(() => {
realm.create('Student', {id: data[0].kp_ID, bb_first_name: data[0].kp_ID});
});
}
Run Code Online (Sandbox Code Playgroud) 我希望在我的函数中返回一个数组作为字符串.
例:
return [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
Run Code Online (Sandbox Code Playgroud)
应该返回"[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]"一个字符串.我不想使用,.join()因为它删除了[]括号.
我在IconButton每一行旁边都显示了下面的内容,因此对于每一行我可以执行不同的 API 调用。这些按钮的警报在加载时显示?!我该如何解决?
<IconButton onClick={alert("abc")}>
<Edit color="action" />
</IconButton>
<IconButton onClick={alert("abc")}>
<Update color="action" />
</IconButton>
<IconButton onClick={alert("abc")}>
<Delete color="action" />
</IconButton>
Run Code Online (Sandbox Code Playgroud) 我无法在Ajax中获得PHP回声。
这是我的test01.html代码:
在我的HTML代码中,引用了jQuery,并将事件绑定到“ sub01”按钮中,我使用Ajax提供POST请求:
$(".sub01").bind("click", function() {
$.ajax({
type: "POST",
url: "cms/test01.php?action=test01",
dataType: "json",
data: {
"var_01": "var_01_value",
"var_02": "var_02_value",
},
success: function(response) {
console.log(response) // there I want to console the response from PHP.
}
})
})Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<form>
<input type="text" value="var_01">
<input type="text" value="var_02">
<input id="sub01" type="submit" value="click me!">
</form>
</div>Run Code Online (Sandbox Code Playgroud)
这是我的PHP test01.php代码:
在我的PHP代码中,我想回显$_POST,然后我希望AJAX代码获得响应。
<?php
echo $_POST;
Run Code Online (Sandbox Code Playgroud)
我想要代码
success: function(response) {
console.log(response) // there I want to console the response from …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试循环运行一个函数。
无法弄清楚,这是我尝试过的:
do {
queryLastCursor(lastCursor).then(lastCursorResults => {
if (lastCursorResults.hasNext = false) {
hasNextPage = false;
}
console.log(hasNextPage);
})
} while (hasNextPage);
Run Code Online (Sandbox Code Playgroud)
queryLastCursor是一种调用 API 的方法。当它返回数据时,它的值将是hasNext如果它返回 false 那么我想设置hasNextPage为false. 预期的行为是它一次又一次地运行该函数,直到我们得到结果hasNext = false。知道我做错了什么吗?
我有一个 JS 函数,用于响应式导航,带有汉堡按钮,可以在屏幕太小时隐藏和显示导航。
我的问题是,即使 CSS 样式显示:none,导航的链接也会在加载时显示,之后按钮将按预期工作并让我在display: none和 之间切换display: flex。是什么导致它display: none在加载时忽略?
function myBurger() {
var x = document.getElementById("navLinks");
if (x.style.display === "none") {
x.style.display = "flex";
} else {
x.style.display = "none";
}
}Run Code Online (Sandbox Code Playgroud)
.navigation1 {
width: 100%;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
padding: 3rem 3rem;
.logo img {
height: 5rem;
}
i {
display: none;
}
.navLinks {
display: flex;
a {
padding-left: 2rem;
align-self: center; //vertical align
color: $secondaryColor;
} …Run Code Online (Sandbox Code Playgroud)我有两种情况,我对得到的输出感到困惑。
情况1 :
let x = {
b: 5,
y: function a() {
return function() {
return () => {
console.log(this);
}
}
}
}
x.y()()();Run Code Online (Sandbox Code Playgroud)
在运行时,x.y()()()我将Window对象作为输出,但根据箭头函数的定义,输出应该是其父函数。
案例2:
let x = {
b: 5,
y: function a() {
return () => {
console.log(this);
}
}
}
x.y()();Run Code Online (Sandbox Code Playgroud)
如果我删除一层嵌套,这是一个基本示例,然后在运行时x.y()(),我将获取对象x作为输出。
你能解释一下为什么我会得到这些输出吗?
我一直在使用 NodeJS 异步,但我试图了解 JavaScript 中的基本承诺,但我遇到了问题。
我创建了下面的代码进行测试。
function first() {
// Simulate a code delay
return new Promise(function(resolve) {
setTimeout(function() {
console.log(1);
}, 500);
});
}
function second() {
console.log(2);
}
first().then(second());Run Code Online (Sandbox Code Playgroud)
它应该首先打印“1”,但它首先在控制台中打印“2”。为什么会发生?
谢谢
我正在尝试解决一个需要我从数组中删除数字 6 的问题。
我知道如何使用删除过去的6 pop(),但我试图splice()用indexOf(),以除去指数2和6,但没有运气。这是来自单链表挑战。
预期输出应为 [1,2,3,4,5]。我的输出目前是 [1,2,6,3,4,5]。
var removeElements = function(head, val) {
let array = [1, 2, 6, 3, 4, 5, 6];
this.val = (this.val === 6 ? this.val : array.pop(this.val));
this.head = (head === this.val ? head : this.next);
console.log(array);
};
Run Code Online (Sandbox Code Playgroud) 我有一个条件,其中0或更多是有效的,负面是无效的.当我在JavaScript/TypeScript中相应地编写代码时,令我惊讶的是它没有像我预期的那样工作.
代码如下.
if (-1) {
console.log("truthy")
} else {
console.log("falsy")
}Run Code Online (Sandbox Code Playgroud)
这将在控制台中打印以下内容.
truthy
它应该是falsy,对吧?
任何帮助,帮助我理解这种行为.我错过了什么?
谢谢
javascript ×9
arrays ×1
closures ×1
css ×1
ecmascript-6 ×1
html ×1
php ×1
promise ×1
reactjs ×1
typescript ×1