Gunakan q.js dalam node.js untuk melaksanakan janji api_node.js

WBOY
Lepaskan: 2016-05-16 16:36:17
asal
1293 orang telah melayarinya

Mengenai apa itu janji dan apakah masalah yang diselesaikannya, sila alami kaedah pengekodan tak segerak panggilan balik nod dan teruskan ke http://wiki.commonjs.org/wiki/Promises/A Lihat Ia bergantung pada bagaimana ia ditakrifkan, jadi saya tidak akan pergi ke butiran di sini.

Di sini kita melihat cara menggunakan q.js untuk melaksanakan janji api nod.

1. Semuanya bermula dengan pemasangan

Salin kod Kod adalah seperti berikut:

npm pasang q

2. Kaedah janji api gaya nod piawai

1. Gunakan Q.nfcall

Berbanding dengan Q.fcall, Q.nfcall ialah Q.fcall bagi nod.

Salin kod Kod adalah seperti berikut:

var FS = memerlukan('fs'),
Q = memerlukan('q'),
warna = memerlukan('warna'),
Fail = 'example.txt';
var fsReadFile = Q.nfcall(FS.readFile,fail,pengekodan);
fsReadFile.then(fungsi(hasil){
console.log((“invoke in nfcall ” file).red);
console.log(hasil.hijau);
},fungsi(ralat){
console.log(“invoke in nfcall”.red);
console.log(error.toString().red);
}
);

2. Gunakan Q.denodeify

Salin kod Kod adalah seperti berikut:

var fsReadFile_denodeify = Q.denodeify(FS.readFile);

fsReadFile_denodeify(fail,pengekodan).kemudian(fungsi(hasil){
console.log("invoke in denodeify".red);
console.log(hasil.hijau)
},fungsi(ralat){
console.log("invoke in denodeify".red);
console.log(error.toString().red);
}
);

3. Gunakan Q.deferd

Salin kod Kod adalah seperti berikut:

var fsReadFile_deferd = fungsi(fail,pengekodan){
var tertunda = Q.defer();
FS.readFile(fail,pengekodan,fungsi(ralat,hasil){
Jika(ralat){
        deferred.reject(error.toString().red);
}
deferred.resolve(result);
});

pulangan tertunda.janji;
};

fsReadFile_deferd(fail).kemudian(fungsi(hasil){
console.log("invoke in deferd".red);
console.log(result.toString().green);
},fungsi(ralat){
console.log("invoke in deferd".red);
console.log(error.toString().red);
}
);

4. Gunakan makeNodeResolver()

Salin kod Kod adalah seperti berikut:

var fsReadFile_makeNodeResolver = fungsi(fail, pengekodan){
var tertunda = Q.defer();
FS.readFile(fail,pengekodan,deferred.makeNodeResolver());
Pulangan tertunda.janji;
};

fsReadFile_makeNodeResolver(fail,pengekodan).kemudian(fungsi(hasil){
console.log("invoke in makeNodeResolver".red);
console.log(hasil.hijau);
},fungsi(ralat){
console.log(error.toString().red);
});
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan