2016-02-27 2 views
5

で待っています。続きは活字体非同期の使用方法/どの活字非同期/のawait機能を使用して、ノードのjs FSモジュールでtypescriptですデフォルトの約束を返し、解決を約束すると、他の関数を呼び出すために、ノードJS FSモジュールで約束

はコードです:今のところ

if (value) { 
    tempValue = value; 
    fs.writeFile(FILE_TOKEN, value, WriteTokenFileResult); 
      } 

function WriteTokenFileResult(err: any, data: any) { 
     if (err) { 
      console.log(err); 
      return false; 
     } 
     TOKEN = tempValue; 
     ReadGist(); // other FS read File call 
    }; 

答えて

8

私はラッパー関数で行くことなど他の方法がないと思います。このような何か:

function WriteFile(fileName, data): Promise<void> 
{ 
    return new Promise<void>((resolve, reject) => 
    { 
     fs.writeFile(fileName, data, (err) => 
     { 
      if (err) 
      { 
       reject(err);  
      } 
      else 
      { 
       resolve(); 
      } 
     }); 
    });   
} 

async function Sample() 
{ 
    await WriteFile("someFile.txt", "someData"); 
    console.log("WriteFile is finished"); 
} 

Node.jsの中の約束について、ここでいくつかの長い議論があります:あなたは約束は、あなたがasync-fileを使用することができます自分でラッパー書きたくない場合はEvery async function returns Promise

0

が。

以下のようになります。このコードを使用して...

(async function() { 
    //... 
    await fs.writeFile(FILE_TOKEN, value); 
    var data = await fs.readFile('gist'); 
    // do something with your "gist" data here... 
})(); 
関連する問題