[英]React Native - Async/Await on Class not working as expected
這是我的代碼...
'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
因為我已經使用過await。
getUrl()
方法中的console.log
是我控制台中最后要返回的內容。
也許正是這種星期六的感覺,任何幫助都值得贊賞!
我自己解決了這個問題。 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) }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.