2017-07-10 11 views
0

私は反応ネイティブが初めてです。私はasync/awaitを使用しようとしていますが、他の関数が応答を返すのを待つことはなく、直ちに4秒待たないでしょう。ここに私のコードは私を助けてください。事前のおかげで:ネイティブ非同期に反応する/待機しないで待つ

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); 
} 

答えて

2

awaitだけPromise上で行うことができ、かつsetTimeout以来、あなたはそれを待つことができないPromiseを返しません。 は、あなたが今しようとしている同じことを行うには、明示的にそうようPromiseを使用しなければならないでしょう:

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

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

実際に任意の 'async'機能は約束を返します。 – str

+0

あなたの助けをありがとう:) – user3806020

+0

@strそれは本当ですが、あなたが待つことができる約束を返さないので、あなたはsetTimeoutでその約束を解決することはできません。 –