javascript - 在返回 promise 之前等待函数完成

标签 javascript ecmascript-6 promise

someFunction() {
  if (array.length > 0) {
    return new Promise((resolve, reject) => {
      array.map(item => {
        AXIOS.postItem(item).catch(err => {reject('error')});
      });
      resolve('resolve');
    });
  }
}

mainFunction() {
  Promise.all([this.someFunction()]).then(() => {
    this.invokeTheRest();
  )}
}

就我而言, some 函数总是返回 resolve ,甚至在 AXIOS.postItem() 之前被处决或被捕。

我怎么能等AXIOS.postItem()执行?如果 catch 中出现错误我怎么能不继续this.invokeTheRest()

最佳答案

将 someFunction 的主体更改为:

someFunction () {
    return array.map(item => AXIOS.postItem(item));
}

这样它就会返回一个可以与 Promise.all 一起使用的 Promise 数组。

关于javascript - 在返回 promise 之前等待函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51026213/

相关文章:

javascript - 对鼠标悬停在框阴影上使用react并更改该特定框阴影的颜色

javascript - 无法让 MongoDB 更新查询在 Node.JS 中工作

javascript - 将生成器转换为普通函数

css - 如何在非 cli Angular 元素中使用全局 css?

node.js - 如何在简单的 Mocha 单元测试中处理 UnhandledPromiseRejectionWarning

javascript - 使用 js 和 underscore.js 显示代码时出现问题

javascript - 使用 JavaScript 根据滚动位置应用 CSS 参数

javascript - 在 Node JS 中等待一个函数完成,然后再触发下一个函数

javascript - fetch().then() 返回内容类型和正文

javascript - 如何使用 Firebase 将范围添加到 Facebook 登录