2016-03-10 24 views
1

我有一個使用情況下,我應該獲得承諾的結果變量應該作用域爲全局變量或外部範圍如何訪問內部承諾聲明的變量在量角器

var mobileNumber = database.generateMobileNumber().then(function(number) { 
return number;//number should be access outside this function scope 
); 

回答

1

可以聲明一個變量和賦值保證你的函數返回並等待,直到promise解決。下面是如何 -

var mobileNumber = ''; 
browser.wait(function(){ 
    return database.generateMobileNumber().then(function(number) { 
     mobileNumber = number; 
     return !!number; 
    ); 
}).then(function(){ 
    //mobileNumber should be accessible here 
}); 

注:因爲你不知道什麼時候承諾的回報,用wait()功能應該幫助,直到返回值。另外,如果您在某些操作後使用該值,則不需要鏈接wait()函數.then()

希望它有幫助。