我有一个用例,我应该访问promise结果变量应限定为全局变量或外部范围
var mobileNumber = database.generateMobileNumber().then(function(number) {
return number;//number should be access outside this function scope
);
答案 0 :(得分:1)
您可以声明一个变量并在函数返回的promise中赋值,并等到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()
链接。
希望它有所帮助。