鉴于以下代码:
var arr = ['one', 'two']
for (index in arr) {
console.log('outside promise:', arr[index])
myPromise().then(function(response) {
console.log('inside promise:', arr[index])
})
}
我的输出:
// outside promise: one
// outside promise: two
// inside promise: one
// inside promise: one
为什么在promise中控制台输出的hack不会循环通过值?
答案 0 :(得分:0)
在评论中说明@Jaromanda X
,正确的输出将是:
// outside promise: one
// outside promise: two
// inside promise: TWO
// inside promise: TWO
由于promise将在索引已经为1
时解析,而不是0.如果在控制台中得到不同的结果,则可能是stdout
并发问题。尝试将结果添加到数组中,然后输出它;
const arr = ['one', 'two'];
let results = [];
for (index in arr) {
results.push(`outside promise: ${arr[index]}`)
myPromise().then(function(response) {
results.push(`inside promise: ${arr[index]}`)
})
}
console.dir(results);