我在静态类中编写此函数
remove(){
Keychain
.resetGenericPassword(Config.keychainGroupe)
.then(function() {
AsyncStorage.removeItem('data', (err) => console.log('data deleted, return true', err));
});
}
如果要成功删除数据,我想异步返回true,这样我就可以通过调用
await MyClass.remove()
使用该函数。从AsyncStorage删除项目后,我试图返回true,但是用awairt调用函数时却变得不确定 最佳答案
您可以使用Promise
或async-await
。
从promise的then
方法返回值的确切方法如下
1)使用承诺
remove(){
//Notice return before the Keychain
return Keychain
.resetGenericPassword(Config.keychainGroupe)
.then(function() {
AsyncStorage.removeItem('data', (err) => console.log('data deleted, return true', err));
return true;
});
}
要么
remove(){
return new Promise((resolve, reject) => {
Keychain
.resetGenericPassword(Config.keychainGroupe)
.then(() => {
AsyncStorage.removeItem('data', (err) => console.log('data deleted, return true', err));
resolve(true);
}).catch((err) => {
reject(err);
});
});
}
2)使用异步等待
async remove(){
try {
const resolvedData= await Keychain.resetGenericPassword(Config.keychainGroupe)
if(resolvedData){
try {
await AsyncStorage.removeItem('data');
return true;
} catch (err) {
console.log('data deleted, return true', err);
}
}
}
catch(err) {
console.log('Something went wrong with executing resetGenericPassword');
}
}