为什么新的Promise.all()。then()有效?

时间:2017-04-07 10:26:34

标签: javascript react-native promise

let iconsLoaded = new Promise((resolve, reject) => {
  new Promise.all(
    Object.keys(icons).map(iconName => {
      const Provider = icons[iconName][2] || defaultIconProvider; // Ionicons
      return Provider.getImageSource(
        iconName.replace(replaceSuffixPattern, ''),
        icons[iconName][0],
        icons[iconName][1]
      )
    })
  ).then(sources => {
    Object.keys(icons)
      .forEach((iconName, idx) => iconsMap[iconName] = sources[idx])

    // Call resolve (and we are done)
    resolve(true);
  })
});

请帮助我理解上面关于Promise.all()的代码

我知道这个Promise对象有一个call()方法,但据我所知它是一个静态方法,它不应该像上面那样使用,例如:new Promise.all(),但它没有给我任何错误。为什么,为什么,为什么...

Here is source code:

上面的代码没有错误

但是,我的代码如下错误。给我一个错误

let p2 = new Promise(function(resolve, reject){
    console.log('p2 body')
  resolve('p2 resolve')
})

let p1 = new Promise(function(resolve, reject){
    console.log('p1 body')
  resolve('p1 resolve')
})

var p = new Promise(function(resolve, reject){
   new Promise.all([p2,p1])
   .then(function(){
    console.log('all(p2, p1) then')
  })
    console.log('p body')
})

0 个答案:

没有答案