2016-07-29 33 views
0

創建隨機數有一個函數這就是模擬服務器請求有超時的JavaScript

function request(val, callback) { 
    setTimeout(function() { 
    callback(val * val);}, Math.randInt(1000));} 

val - 一個整數值; 回調 - 將在一些隨機延遲後執行的函數。它有一個整數參數。

我需要如下因素:生成號碼並通過此功能

嘗試模仿服務器超時這個

 <script> 

     var a = function randomInteger(max) { 
     var rand = 0 + Math.random() * (max + 1 - 0 -1); 
     rand = Math.floor(rand); 
     return rand; 
     }; 
     function callback(dd) { 
      var caaler = 20 + dd; 
      return caaler; 
     }; 
     var hh = callback(20) 
     var q = a(50); 
     var g = request(q,hh); 
     function request(val, callback) { 
     setTimeout(function() { 
     callback(val * val); 
    }, 3000); 
} 
console.log(callback(56)); 
     </script> 

,但有答案:遺漏的類型錯誤:回調不是一個函數 - 後3秒。 需要生成號碼和一些超時後顯示它,使用頂部功能

我不明白什麼意思數學**。randInt **(1000));

+0

這一切都是一團糟,在哪裏定義了回調函數? – Nunchy

+0

function(){ callback(val * val); –

+0

這不是函數定義,你調用函數callback()並傳遞一個參數...一個名爲callback()的函數的定義可能類似於:function callback(param){code; } – Nunchy

回答

0

試試這個。需要在回調中調用console.log

function randInt(max) { 
    var rand = Math.random() * max; 
    rand = Math.floor(rand); 
    return rand; 
} 

function request(val, callback) { 
    setTimeout(function() { 
    callback(val * val); 
    }, randInt(1000)); 
} 

request(20, function(result) { 
    console.log(result); 
}); 
+0

按鈕點擊是如何做的? onclick =「request()」或onclick =「result()」? –

+0

只是做一個大的全局函數,而且所有的作品=) –

+0

如果裏面有請求函數怎麼會+兩個變量? –

0

你傳遞一個參數:

var g = request(q); 

到的已定義爲需要2函數:這意味着該函數內callback將是不確定的,因此你的錯誤

function request(val, callback) {' 

。也許你打算通過你之前定義的a函數。

+0

我必須儘早定義函數回調嗎? –

0

如果需要使用此功能,它似乎你需要通過一個數字和一個函數(回調)

function request(val, callback) { 
    setTimeout(function() { 
     callback(val * val); 
    }, 3000); 
} 

這樣

request(50, a); 

這是比如函數你寫道,你可以通過作爲第二個參數到request功能

var a = function randomInteger(max) { 
    var rand = 0 + Math.random() * (max + 1 - 0 -1); 
    rand = Math.floor(rand); 
    console.log(rand); 
}; 

在這個功能中你可以將結果打印到屏幕上