如何获取在函数外使用的响应数据

时间:2016-06-15 01:55:59

标签: javascript

如何获取要在函数外使用的响应数据?

var myVar;

        uploadService.getUploadFolderId(folderId).then(function(response){      
            console.log("Show docs id", response.data); // I get output :)
            myVar = response;
            return myVar;

        }).$promise;

console.log("show", myVar) // output: undefined

我做了一些有关全局功能和功能提升的阅读和练习,但我仍然无法让它工作。请提前帮助和谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在javascript中使用Promise API。基本上你:

  1. 创建您的本地变量(下面为value
  2. 创建Promise
  3. 在您的承诺中执行一些长时间运行的任务,并在您拥有所需内容时致电resolve
  4. 将对象传递到要保留的resolve处理程序中(在“Promise”之外公开)
  5. 利用then(...)上的Promise处理程序并提取您之前解决的对象
  6. 示例:

    var value = 'Foo';
    
    var promise = new Promise(
      function(resolve, reject) {
        setTimeout(function() {
          resolve('Bar')
        }, 1000);
      });
    
    promise.then(function(val) {
      value = val;
      console.log(value); // Bar
    });