Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 承诺链,承诺链对象_Javascript_Promise_Angular Promise - Fatal编程技术网

Javascript 承诺链,承诺链对象

Javascript 承诺链,承诺链对象,javascript,promise,angular-promise,Javascript,Promise,Angular Promise,我想链接promise对象,但是第二个then块在链接的promise对象得到解决之前被执行的问题 service.webService1() .then(data => { if (data.flag) { // true return service.webService2() // returns a promise } return $q.resolve({}) }) .then(data => { // some lo

我想链接promise对象,但是第二个
then
块在链接的promise对象得到解决之前被执行的问题

service.webService1()
  .then(data => {
    if (data.flag) { // true
      return service.webService2() // returns a promise
    }
    return $q.resolve({})
  })
  .then(data => {
    // some logic
    // data is undefined here, should be the result of
    // service.webService2() call
  })
  .catch(err => {
    // err handling
  })

问题是,我忘记在
service.webService2()
函数中返回我的承诺。谢谢:)

如果执行了这一行
return service.webService2()
,那么它的行为就不应该像你说的那样在第二个
之后执行,那么
块第二个
中的
数据
就是
webService2
返回的数据吗?还请注意,您只需
返回{}
,无需将
然后
回调的结果包装在承诺中,
然后
将自动为您执行该操作。可能需要检查
webService2的实现,并检查它是否确实返回了承诺。也许你忘了那里有一个
return
语句?当我调试时,webService2被执行,我确信
data.flag
true
而且我没有忘记return语句。你能说明工作代码与你问题中的代码有什么不同吗?