2017-06-14 19 views
0

我有我的諾言裏面的一些回調:的JavaScript/Node.js的 - 裏面無極回調

var res = new Promise(resolve => { 
    console.log('trig1'); 
    var out = fs.createWriteStream(pathToFile); 
    console.log('trig2'); 
    out.on('finish', function() { 
    console.log('out finish') 
    }) 
    out.on('close', function() { 
    console.log('out close') 
    }) 
    out.on('error', function(err) { 
    console.log('out error: ' + err) 
    }) 
}) 

當我把這個承諾,它創建的路徑和打印文件:

trig1 
trig2 

而已。爲什麼我的回調沒有執行?

問候和感謝

回答

1

因爲沒有錯誤,你沒有寫任何東西,你沒有關閉該流。這就是爲什麼這些事件被解僱的原因。

嘗試更改您的代碼,以便它會執行某些操作。

var res = new Promise(resolve => { 
    console.log('trig1'); 
    var out = fs.createWriteStream(pathToFile); 
    console.log('trig2'); 
    out.on('finish', function() { 
    console.log('out finish') 
    }) 
    out.on('close', function() { 
    console.log('out close') 
    }) 
    out.on('error', function(err) { 
    console.log('out error: ' + err) 
    }); 
    out.close(); // this will fire `close` event 
})