当我使用 javascript 使用内部地图时,Promise 无法正常工作

KARTHIKEYAN.A

我正在编写一个 JavaScript 函数来处理 map 方法内的 API 调用,在完成 map 方法内的所有任务之前,我的函数是执行错误的结果。但这并不符合我的期望。

我的代码:

function vehicleAndWorker(hook){
  var routeArray = [];
  return new Promise(function(resolve, reject) {
    hook.data.map(d => {
      var routeArray = [];
      delete d.driverId
      delete d.vehicle
      delete d.workers
      return hook.app.service('vehicles')
        .find({ query: {vehicleId: d.vehicleId}})
        .then(result=>{
          var vehicleTypeId = result.data[0].vehicleTypeId;
          return hook.app.service('vehicle-types')
              .find({ query: {vehicleTypeId: vehicleTypeId }})
              .then(result=>{
                  d.vehicle = {
                    vehicleId: d.vehicleId,
                    vehicleTypeId: vehicleTypeId,
                    fixedCost: result.data[0].fixedCost,
                    variableCost: result.data[0].variableCost
                  }
                  return hook.app.service('workers')
                    .find({ query: {assignedVehicleId: d.vehicleId}})
                    .then(result=>{
                        d.workers = [{
                          id:result.data[0].workerId,
                          name:result.data[0].name,
                          type:result.data[0].type
                        }];
                        delete d.vehicleId;
                  })
              })
          })
      })
      resolve(hook)
  })
}

在执行我的地图作业之前,执行返回如何解决这个问题。

阿米特·瓦格纳

首先链接你的承诺而不是嵌套它们。如果你使用嵌套,那么你就不需要承诺。

第二次使用 promise all

function vehicleAndWorker(hook){
    var all = [];
    var i =0;
    hook.data.map(d => {
      delete d.driverId
      delete d.vehicle
      delete d.workers
      all[i] = hook.app.service('vehicles')
        .find({ query: {vehicleId: d.vehicleId}})
        .then(result=>{
              var vehicleTypeId = result.data[0].vehicleTypeId;
              return hook.app.service('vehicle-types').find({ query: {vehicleTypeId: vehicleTypeId }})
         })
        .then(result=>{
            d.vehicle = {
              vehicleId: d.vehicleId,
              vehicleTypeId: vehicleTypeId,
              fixedCost: result.data[0].fixedCost,
              variableCost: result.data[0].variableCost
            }
            return hook.app.service('workers').find({ query: {assignedVehicleId: d.vehicleId}})
         })
        .then(result=>{
            d.workers = [{
              id:result.data[0].workerId,
              name:result.data[0].name,
              type:result.data[0].type
            }];
            delete d.vehicleId;
            return result
         })
          i++;
      })
     return Promise.all(all).then(hook);     
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用javascript取消表单提交无法正常工作

来自分类Dev

当我使用变量时,sed无法正常工作

来自分类Dev

当我使用clear时,margin-top无法正常工作:

来自分类Dev

使用Javascript更改背景颜色无法正常工作

来自分类Dev

使用javascript创建div无法正常工作

来自分类Dev

使用innerHTML时JavaScript无法正常工作

来自分类Dev

当我使用Selenium IDE时,WebDriver无法找出Web CSS所在的CSS正常工作的位置

来自分类Dev

当我使用其他片段时,viewpager在lollipop 5.0中无法正常工作

来自分类Dev

当我使用完整网址链接脚本时,jQuery脚本无法正常工作

来自分类Dev

当我使用input的display:none属性时,jQuery悬停无法正常工作

来自分类Dev

使用javascript登录-设置元素值无法正常工作

来自分类Dev

使用JavaScript提交Codemirror数据无法正常工作

来自分类Dev

使用JavaScript进行图片交换无法正常工作

来自分类Dev

为什么当我使用量角器书写文本时无法正常工作

来自分类Dev

laravel资源功能可以正常工作,但是当我手动使用它时却无法正常工作

来自分类Dev

使用JavaScript替换活动类无法正常工作

来自分类Dev

滑块中的按钮无法使用JavaScript正常工作

来自分类Dev

使用javascript进行十进制验证无法正常工作

来自分类Dev

递归方法无法使用JavaScript正常工作

来自分类Dev

当我使用附加时,jQuery将无法正常工作

来自分类Dev

使用JavaScript的温度转换器无法正常工作

来自分类Dev

使用javascript创建div无法正常工作

来自分类Dev

使用innerHTML时JavaScript无法正常工作

来自分类Dev

如果我在其中使用警报,则Javascript代码将正常工作,否则它将无法正常工作

来自分类Dev

使用Javascript将内容附加到div无法正常工作

来自分类Dev

使用JavaScript提交Codemirror数据无法正常工作

来自分类Dev

当我在函数中使用if语句时,为什么我的javascript无法正常工作

来自分类Dev

使用quote_keys缩小javascript无法正常工作

来自分类Dev

使用 javascript 编写 css 属性无法正常工作

Related 相关文章

  1. 1

    使用javascript取消表单提交无法正常工作

  2. 2

    当我使用变量时,sed无法正常工作

  3. 3

    当我使用clear时,margin-top无法正常工作:

  4. 4

    使用Javascript更改背景颜色无法正常工作

  5. 5

    使用javascript创建div无法正常工作

  6. 6

    使用innerHTML时JavaScript无法正常工作

  7. 7

    当我使用Selenium IDE时,WebDriver无法找出Web CSS所在的CSS正常工作的位置

  8. 8

    当我使用其他片段时,viewpager在lollipop 5.0中无法正常工作

  9. 9

    当我使用完整网址链接脚本时,jQuery脚本无法正常工作

  10. 10

    当我使用input的display:none属性时,jQuery悬停无法正常工作

  11. 11

    使用javascript登录-设置元素值无法正常工作

  12. 12

    使用JavaScript提交Codemirror数据无法正常工作

  13. 13

    使用JavaScript进行图片交换无法正常工作

  14. 14

    为什么当我使用量角器书写文本时无法正常工作

  15. 15

    laravel资源功能可以正常工作,但是当我手动使用它时却无法正常工作

  16. 16

    使用JavaScript替换活动类无法正常工作

  17. 17

    滑块中的按钮无法使用JavaScript正常工作

  18. 18

    使用javascript进行十进制验证无法正常工作

  19. 19

    递归方法无法使用JavaScript正常工作

  20. 20

    当我使用附加时,jQuery将无法正常工作

  21. 21

    使用JavaScript的温度转换器无法正常工作

  22. 22

    使用javascript创建div无法正常工作

  23. 23

    使用innerHTML时JavaScript无法正常工作

  24. 24

    如果我在其中使用警报,则Javascript代码将正常工作,否则它将无法正常工作

  25. 25

    使用Javascript将内容附加到div无法正常工作

  26. 26

    使用JavaScript提交Codemirror数据无法正常工作

  27. 27

    当我在函数中使用if语句时,为什么我的javascript无法正常工作

  28. 28

    使用quote_keys缩小javascript无法正常工作

  29. 29

    使用 javascript 编写 css 属性无法正常工作

热门标签

归档