2016-06-15 21 views
0

如何獲取要在功能外使用的響應數據?如何獲取要在功能外使用的響應數據

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

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

  1. 創建局部變量(以下value
  2. 創建Promise
  3. 請在您的承諾需要長時間運行的任務,並呼籲resolve當你有你想要
  4. 傳遞對象是什麼到你想要保存的resolve處理程序中(暴露在`Promise之外)
  5. 利用Promise上的then(...)處理程序並提取對象y OU解決前面

實施例:

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 
}); 
+0

'的console.log(值); // Bar'在內部顯示輸出,但在外部顯示'Foo'?如何在其外部使用輸出內部的輸出?謝謝。 – sg552

+0

@ sg552你不知道。您必須依靠承諾來解決才能使用它。異步操作的重點在於等待,直到獲得響應,然後採取行動。上面的'value'被設置爲承諾解析的結果,所以你可以在承諾之外使用*,但是你需要先等待它解決。 – mariocatch

相關問題