2017-07-10 8 views
0

Ich bin neu zu reagieren native. Ich versuche, async/await zu verwenden, aber es wartet nicht auf andere Funktion, um Antwort und Warnung sofort zurückzugeben, es wird nicht 4 Sekunden warten. Hier ist mein Code Bitte hilf mir. Vielen Dank im Voraus:React native async/warte nicht

import { 
    AsyncStorage, 
    Platform 
} from 'react-native'; 


export const hello =async()=>{ 
const value=await refreshToken(); 
alert(value); 
return "adasd"; 
} 


const refreshToken=async()=>{ 
    setTimeout(async()=>{ 
    return true; 
    },4000); 
} 

Antwort

2

Ein await nur auf einem Promise getan werden kann, und da setTimeout gibt keine Promise Sie es nicht erwarten können. das Gleiche zu tun, jetzt Sie versuchen, würden Sie explizit eine Promise wie so verwenden müssen:

export const hello =async()=>{ 
    const value = await refreshToken(); 
    alert(value); 
    return "adasd"; 
} 

const refreshToken=() => { 
    return new Promise(res => setTimeout(res, 4000)); 
} 
+0

Eigentlich jede 'async' Funktion gibt ein Versprechen. – str

+0

Vielen Dank für Ihre Hilfe :) – user3806020

+0

@str Das stimmt, aber Sie können dieses Versprechen mit setTimeout nicht lösen, da es keine Zusage gibt, die Sie erwarten können. –