2016-03-19 13 views
0

İşte daha net olması için örnek bir kod.Hemen çağrılan işlev ifadesi, ikinci olarak çalıştırılmıyor

module.exports = ((parameter) => { 
    console.log(parameter); 
})('some value'); 

mymodule aslında ana sunucu dosyasıdır ve bu nedenle hemen infaz edilmesi gerekir:

Bu

benim modülüdür.

Birimimdeki testler benim test modülümde modül gerektiriyor ancak hemen çağrılan fonksiyon ifadesi sadece ilk kez çalıştırılıyor.

require('./mymodule'); 
require('./mymodule'); 

Bu işlemi her seferinde nasıl yapabilirim? nodejs Dokümanlar

cevap

1

Sen Düğüm korur önbelleği geçersiz kılabilir.

1

:

Çoklu aramalar ('foo') gerektirecek şekilde modül kodu yürütülen birden çok kez olmasına neden olmayabilir. Bu önemli bir özellik. Bununla birlikte, "kısmen bitti" nesneleri döndürülebilir, böylece çevrimsel bağımlılıklarının döngülere neden olacakları zaman bile yüklenmesine izin verilir.

https://nodejs.org/docs/v0.4.12/api/modules.html#caching

Eğer bir modül daha sonra, kod birden çok kez çalıştırmak işlev vermek ve bu işlevi çağırmak olmasını istiyorsanız

. Sadece sonucu ihraç yerine,

require('./mymodule'); 
delete require.cache[require.resolve('./mymodule')] 
require('./mymodule'); 

Sen fonksiyonunu ihracat ve gerekli çağırarak birlikte olsa, muhtemelen daha iyi: