2017-12-11 10 views
-1
var job = new cronJob('* * * * * *', function() { 
    Draft.find().then(data => { 
     var finalData = data; 
     finalData.forEach(function(item2) { 
      if (item2.scheduledTime === 'now') { 
       finalData.forEach(function (item) { 
        var psms = { 
         phoneno: item.senderdata, 
         sender: item.senderName, 
         message: item.message 
        } 
        var obj = psms; 
        var finalpostsms = obj.phoneno.split("\n").map(s => ({ ...obj, 
         phoneno: +s 
        })); 
        Profsms.bulkCreate(finalpostsms).then(function (data) { 
         if (data) { 
          console.log("successfully moved in profsms mysql"); 

         } else { 
          console.log("failed"); 
         } 
        }) 
       }); 
      } else { 
       console.log('Better you be in drafts..manual input'); 
      } 
      //delete from draft 
      if (item2.scheduledTime === 'now') { 
       Draft.findOneAndRemove({ 
        _id: item2._id 
       }, function (err, employee) { 
        if (err) 
         console.log('err'); 
        console.log('Successfully deleted from draft'); 
       }); 
      } else { 
       console.log('You cant delete from drafts hahaha because no sendnow statement'); 
      } 
     }); 
    }); 
}, function() { 
    console.log('DelCron Job finished.'); 
}, true, 'Asia/Calcutta'); 

上記のコードは、非同期で動作します。nodejsを同期して動作させる方法は?

上記のコードを同期として動作させたい場合は、いくつかの回答が必要です。私はJSの開発の初心者です

async awaitでできるのですか?私は非同期のコードを書く方法を知らない。

+2

あなたはドキュメントを探しています。 – SLaks

+0

あなたは投稿回答ですか?上記のコードを同期として動作させるには、それは私にとって非常に便利です:) –

+0

[JavaScriptプロミスが関数を再開する前に解決するのを待つ方法]の複製がありますか?(https://stackoverflow.com/questions/28921127/how Javaのプロンプトを待ってから再開する前に解決する機能) –

答えて

-1

あなたのコールバックが

async function(){ 
    let data = await Draft.find(); 
    ...process data; 
} 
+0

パラメータ "async function()"の近くでシンタックスエラーが表示される場合は、自分の質問コードを編集して、完全な回答を投稿すれば本当に役に立ちます:) –

+0

@MohamedSameer: 'async'をサポートするノードのバージョンを実行する必要があります。 – SLaks

+1

@モハメドサマー:私たちはあなたのための関数を書いていません。あなたはコードを書く方法を学ぶ必要があります。 – SLaks

-1

する必要がありますこれは、サンプルコードを待って、あなたはあなたの必要性に基づいて修正することができる非同期です。しかし、まず、非同期構文をサポートするNodeを使用する必要があります。私はノード8のLTSが既に非同期/待機の機能を持っていると信じています。

function get() { 
// your db code block 
return Promise.resolve(7); 
} 

async function main() { 
    const r = await get(); 
    console.log(r); 
} 

main(); 
+0

が動作しません: '( –

+0

どのノードバージョンを使用していますか?このサンプルコードを試して端末で実行していますか? –

+0

はい、私は8.9.1が動作していますが、上記のコードは動作しません –

関連する問題