循环承诺

时间:2017-05-25 22:23:31

标签: javascript node.js

鉴于以下代码:

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不会循环通过值?

1 个答案:

答案 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);