0
2つのjavascript関数を使用してKinveyのデータベースからデータを取得します。最初の関数を実行し、次の呼び出しで実行前に2秒待ちます。 私の誤差がある:私は私が手にsetTimeoutを使う毎回express node.jsでsetTimeoutはどのようにすることができますか?
TypeError: first._onTimeout is not a function
at Timer.listOnTimeout (timers.js:92:15)
私のコードはこれです:
router.post('/datacol/getuserdata', (req, res) => {
request(
{
url: kinveyurl + 'getPrivacyLevel',
method: 'POST',
json: {
"user_id" : req.body.user,
"sensors" : parseInt(req.body.sensor),
"contexts": parseInt(req.body.context),
"day_no" : parseInt(req.body.day),
"data_collectors": parseInt(req.user.type)
},
auth: {
user: config.kinvey.appKey,
pass: config.kinvey.masterSecret,
sendImmediately: true
}
}, (err, resp, bod) => {
if(err) console.error(err)
console.log("User " + req.body.user + " Summarization Level = " + bod.summarization_level)
// This here should execute after 2 seconds!!!
// I try to set the timeout here!!
setTimeout(request(
{
url: kinveyurl + 'getAccelerometerData',
method: 'POST',
json: {
"user_id" : req.body.user,
"summarization_level": parseInt(bod.summarization_level),
"day_no" : parseInt(req.body.day)
},
auth: {
user: config.kinvey.appKey,
pass: config.kinvey.masterSecret,
sendImmediately: true
}
}, (err, resp, sensorData) => {
if(err) console.error(err)
console.log(sensorData)
res.render('datacolaccelerometer', { user : req.user, sensordata: sensorData })
}),3000);
})
})
私が表現する新しいですし、私はどこ配置するかわかりません。 要するに、setTimeoutをどこに置くべきかを知りたいので、2回目の呼び出しをjavascript関数に2秒遅らせることができます。ありがとうございます!
であなたの 'request'呼び出しをラップ機能。 'setTimeout(function(){//ここにあなたのコード}、3000);' –
私のコードを使って表示できますか? – LoveMeow
私はそれが答えとしてそれを追加していない理由は本当の問題だとはよく分かりません。私が意味していたのは、上記のコメントで述べたように 'function(){//ここにリクエストコードを貼り付けてください}'の中に 'request(){//残りのコード}'を移動させることです。 –