这是我的代码......
'use strict';
var React = require('react-native');
var {
AsyncStorage
} = React;
exports.buildUrl = function(){
var test = new Sales();
test.getOrder();
}
class queryBuilder{
constructor() {
}
getUrl(){
AsyncStorage.getItem('auth').then((value) => {
var auth = JSON.parse(value);
var store = auth.url;
console.log('store = ' + store);
return store;
});
}
}
class Sales extends queryBuilder{
async getOrder(){
console.log('get order hit');
try{
var urlstart = await this.getUrl();
} catch(e) {
console.log('ERROR')
console.log(e);
}
console.log('URL BELOW');
console.log(urlstart);
console.log('URL ABOVE');
}
}
在我的getOrder
方法中,我希望urlstart
不会undefined
,因为我已经使用了等待。
console.log
方法中的getUrl()
是我在控制台中返回的最后一件事。
也许就是那个星期六的感觉,任何帮助都非常感激!
答案 0 :(得分:0)
我自己解决了这个问题。 Async
Await
需要在我正在调用的函数上返回一个承诺。
我修改了getUrl()
方法,如下所示。
getUrl(){
return new Promise(function(resolve, reject) {
AsyncStorage.getItem('auth').then((value) => {
var auth = JSON.parse(value);
var store = auth.url;
console.log('store = ' + store);
resolve(store);
});
}
任何进一步的消息仍然非常赞赏。
更新更好,感谢Yuri
getUrl(){ return AsyncStorage.getItem('auth').then(value => JSON.parse(value).url) }