En ce qui concerne la promesse et ce que la promesse résout, veuillez découvrir la méthode de codage asynchrone de rappel, puis passer à http://wiki.commonjs.org/wiki/promis/a pour voir comment il est défini. Je n'entrerai pas dans les détails ici.
Ici, nous verrons comment utiliser Q.js pour implémenter la promesse de l'API de nœud.
1. Tout commence par l'installation
La copie de code est la suivante:
Installation de NPM Q
2. Promise Méthode de l'API de style nœud standard
1. Utilisez Q.nfcall
Par rapport à Q.fcall, q.nfcall est le Q.fcall de nœud.
La copie de code est la suivante:
var fs = require ('fs'),
Q = require ('q'),
couleurs = require («couleurs»),
file = 'example.txt';
var fsReadfile = q.nfcall (fs.readfile, fichier, codage);
fsreadfile.phen (fonction (result) {
console.log (("invoquer dans nfcall" + fichier) .red);
console.log (result.Green);
}, fonction (erreur) {
console.log ("Invoke in nfcall" .red);
console.log (error.toString (). Red);
}
));
2. Utilisez Q.Denodeify
La copie de code est la suivante:
var fsReadFile_Denodeify = q.Denodeify (fs.readfile);
fsReadFile_Denodeify (fichier, encoding) .then (fonction (result) {
console.log ("invoquer dans dénodeify" .red);
console.log (result.Green)
}, fonction (erreur) {
console.log ("invoquer dans dénodeify" .red);
console.log (error.toString (). Red);
}
));
3. Utilisez Q.Deferd
La copie de code est la suivante:
var fsreadfile_deferd = fonction (fichier, codage) {
var différé = q.defer ();
Fs.readfile (fichier, codage, fonction (erreur, résultat) {
if (error) {
Deferred.Reject (error.toString (). Red);
}
Deferred.resolve (résultat);
});
retour différé.promes;
};
fsreadfile_deferd (fichier) .then (function (result) {
Console.log ("Invoke in Deferd" .red);
console.log (result.toString (). Green);
}, fonction (erreur) {
Console.log ("Invoke in Deferd" .red);
console.log (error.toString (). Red);
}
));
4. Utiliser Makenoderesolver ()
La copie de code est la suivante:
var fsreadfile_makenoderesolver = fonction (fichier, codage) {
var différé = q.defer ();
Fs.readfile (fichier, codage, deferred.makenodeResolver ());
retour différé.promes;
};
fsreadfile_makenoderesolver (fichier, codage) .then (function (result) {
Console.log ("Invoke in Makenoderesolver" .red);
console.log (result.Green);
}, fonction (erreur) {
console.log (error.toString (). Red);
});