小编fra*_*ies的帖子

Promise vs setTimeout

我在以下代码中观察到:

setTimeout(function(){console.log('setTimeout')});
Promise.resolve(1).then(function(){console.log('promise resolve')})
Run Code Online (Sandbox Code Playgroud)

无论我执行多少次,promise回调总是在setTimeout之前记录.

我的理解是两个回调都安排在下一个时钟执行,而我真的不明白发生了什么使得承诺总是优先于超时.

javascript asynchronous

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

Javascript for()循环变体

我正在使用以下属性创建此元素:

var x = document.createElement('x');
x.setAttribute('ha','1');
x.setAttribute('he','2');
x.setAttribute('hi','3');
Run Code Online (Sandbox Code Playgroud)

然后我使用这两种形式循环它,每次获得不同的输出:

>>>for(var i in x.attributes) console.log(x.attributes[i]);
ha="1"
he="2"
hi="3"
3
item()
getNamedItem()
setNamedItem()
removeNamedItem()
getNamedItemNS()
setNamedItemNS()
removeNamedItemNS()
Run Code Online (Sandbox Code Playgroud)

而另一个:

>>>for(var i=0;i<x.attributes.length;i++) console.log(x.attributes[i]);
ha="1"
he="2"
hi="3"
Run Code Online (Sandbox Code Playgroud)

那么,这不应该给出相同的结果吗?为什么不 ?

javascript for-loop

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

标签 统计

javascript ×2

asynchronous ×1

for-loop ×1