我有三个片段是循环三次,而await在荷兰国际集团promise。
在第一个代码段中,它按我的预期工作,并且i每个的值都递减await。
let i = 3;
(async () => {
while (i) {
await Promise.resolve();
console.log(i);
i--;
}
})();
Run Code Online (Sandbox Code Playgroud)
输出:
3
2
1
Run Code Online (Sandbox Code Playgroud)
在第二个中,的值i连续递减直到其达到零,然后await执行所有s。
let i = 3;
while (i) {
(async () => {
await Promise.resolve();
console.log(i);
})();
i--;
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
0
0
Run Code Online (Sandbox Code Playgroud)
最后,这将导致Allocation failed - JavaScript heap out of memory错误并且不输出任何值。
let i = 3;
while (i) {
(async () => {
await Promise.resolve(); …Run Code Online (Sandbox Code Playgroud) #include <stdio.h>
int main(){
char a[] = "bar";
char b[] = "bar";
printf("%d\n", (a==b));
char* x = "bar";
char* y = "bar";
printf("%d\n", (x==y));
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
1
Run Code Online (Sandbox Code Playgroud)
我知道我们无法使用==运算符比较C char数组,因为它比较了内存位置,但为什么它在第二种情况下有效呢?