2017-06-01 4 views
0

私はNodeJSを使い慣れています。私は非同期関数を持っていますrequest()の後に.then()の代わりに

request({url: 'url',json: true}, function (error, response, body) {}); 

この関数が呼び出された後でなければ関数を呼びたくありません。私は.then()をここで呼び出すことはできません。この状況の他の選択肢は何ですか?

答えて

0

ちょうどあなたのコールバック関数として渡す:あなたのコールバック関数の先頭で

function callback (err, res, body) { 
    // Do what needs to be done here. 
}  
request({ url: 'url, json: true }, callback); 

を、errが存在し、その場合は、エラーを処理するかどうかを確認します。

これはarticleです。

thenは、非同期関数がプロミスを返す場合にのみ呼び出すことができます。しかし、Promisesに入る前に、Node.jsの基本を知っておく必要があります。

+0

ような何かを試みることができます。私はこの新しい関数をコールバック関数の後に呼び出す必要があります。 – ARUNIMA

+0

その後、コールバック関数内でコールする必要があります – Josh

+0

このコールバック関数内に4つのファイルを書き込む必要があります。これも非同期プロセスです。さて、私はこれらの4つのファイルすべてを書き終えた後で、その関数を呼び出す必要があります。コールバックを入れることはできませんよね? – ARUNIMA

1

あなたは、私はすでに、コールバック関数を持っているこの

return new Promise(resolve => { 
    request({ 
     url: "", 
     method: "", 
     headers: {}, 
     json: true 
    }, function (error, response, body) { 
     if(!error) 
      resolve(body); 
    }) 
}).then(value => { 
    // process value here 
}) 
関連する問題