Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 在angularjs中从外部承诺中获取价值_Javascript_Angularjs_Promise - Fatal编程技术网

Javascript 在angularjs中从外部承诺中获取价值

Javascript 在angularjs中从外部承诺中获取价值,javascript,angularjs,promise,Javascript,Angularjs,Promise,我有以下代码: generateFromID: function (icon, width, height, color) { path = []; iconData.get(icon).then(function (iconP) { var path = iconPathCache.generate(iconP); }); console.log(path); return this.generate(pa

我有以下代码:

generateFromID: function (icon, width, height, color) {

      path = [];

      iconData.get(icon).then(function (iconP) {

        var path = iconPathCache.generate(iconP);

      });

      console.log(path);

      return this.generate(path, width, height, color);


    },
那我怎么才能找到外面的路呢

console.log(iconData.get(icon));
将导致:

Promise {$$state: Object}$$state: Object__proto__: Object
下面的代码也不起作用:

return iconData.get(icon).then(function (iconP) {

         return path = iconPathCache.generate(iconP);

      });

      return this.generate(path, width, height, color);

有人能告诉我我做错了什么吗?

对不起,但我认为您对承诺和异步一般都感到困惑

我猜从
iconda.get(icon)
获取的
路径
值需要传递给
this.generate
,可以通过以下方式完成:

generateFromID: function (icon, width, height, color) {
  return iconData.get(icon).then(function (iconP) {
    var path = iconPathCache.generate(iconP);
    console.log(path);
    return this.generate(path, width, height, color);
  });
},
现在,
generateFromID
将返回一个承诺。

你说的“外部。然后”是什么意思?我认为您错过了异步执行和$q承诺的概念