2016-12-20 4 views
0
var blah = require('wait.for'); 
var wait = require('wait.for/parallel-tests'); 

function testFunction(){ 
    console.log('fiber start'); 
    wait.miliseconds(10*1000); 
    console.log('fiber end'); 
}; 

console.log('app start'); 
blah.launchFiber(testFunction); 
console.log('after launch'); 

Wenn ich versuche, den obigen Code ich die folgende AusgabeWie benutzt man wait.for?

app start
fiber start
Z:\nodeplayground\node_modules\wait.for\waitfor.js:15
Fiber(function(){ fn.apply(null, newargs)}).run(); //launch new fiber,
call the fn with the args, this=null (strict)
^
TypeError: wait.miliseconds is not a function
at testFunction (Z:\nodeplayground\index.js:8:10)
at Z:\nodeplayground\node_modules\wait.for\waitfor.js:15:31

bekommen zu laufen Was mache ich falsch ?.

Die Hauptfunktionalität, die ich die folgenden

function testFunction2(){ 
    function Innerfunction(){ 
     setTimeout(function(){ 
     console.log("hello"); 
     },5000); 
     console.log("After setTimeout") 
    } 
} 

Ich mag, dass der oben genannte Code erreichen will für 5 Sekunden und Druck warten „Hallo“ und danach „Nach SetTimeout“.

Antwort

0

Sie versuchen, die Methode milliseconds zu importieren, die nicht vom Modul wait.for/parallel-tests exportiert wird.

Sie müssen die Funktion wait.milliseconds in Ihrer Hauptdatei deklarieren (oder sie zur Wiederverwendbarkeit in ein Modul einbinden).

var wait = require('wait.for'); 

wait.timeout_callback = function(ms,callback){ 
    setTimeout(callback,ms); //call callback(null,null) in ms miliseconds 
} 

wait.miliseconds = function(ms){ 
    wait.for(wait.timeout_callback,ms); 
}  

function testFunction(){ 
    console.log('fiber start'); 
    wait.miliseconds(10*1000); 
    console.log('fiber end'); 
}; 

console.log('app start'); 
wait.launchFiber(testFunction); 
console.log('after launch');