我有一个用例,我应该访问promise结果变量,范围应为全局变量或外部范围
var mobileNumber = database.generateMobileNumber().then(function(number) {
return number;//number should be access outside this function scope
);
最佳答案
您可以在函数返回的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()
链接。希望能帮助到你。