Maison >interface Web >js tutoriel >Utilisez q.js dans node.js pour implémenter la promesse d'api_node.js

Utilisez q.js dans node.js pour implémenter la promesse d'api_node.js

WBOY
WBOYoriginal
2016-05-16 16:36:171315parcourir

Concernant ce qu'est une promesse et les problèmes qu'elle résout, veuillez expérimenter la méthode de codage asynchrone de rappel du nœud et passer à http://wiki.commonjs.org/wiki/Promises/A Voir Cela dépend de comment il est défini, je n'entrerai donc pas dans les détails ici.

Nous voyons ici comment utiliser q.js pour mettre en œuvre la promesse de l'API de nœud.

1. Tout commence par l'installation

Copier le code Le code est le suivant :

npm installer q

2. Méthode de promesse de l'API de style de nœud standard

1. Utilisez Q.nfcall

Par rapport à Q.fcall, Q.nfcall est le Q.fcall du nœud.

Copier le code Le code est le suivant :

var FS = require('fs'),
Q = exiger('q'),
couleurs = require('couleurs'),
Fichier = 'exemple.txt';
var fsReadFile = Q.nfcall(FS.readFile,file,encoding);
fsReadFile.then(fonction(résultat){
console.log((fichier « invoquer dans nfcall »).red);
console.log(result.green);
},fonction(erreur){
console.log("invoke in nfcall".red);
console.log(error.toString().red);
>
);

2. Utilisez Q.denodeify

Copier le code Le code est le suivant :

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

fsReadFile_denodeify(file,encoding).then(function(result){
console.log("invoke in denodeify".red);
console.log(result.green)
},fonction(erreur){
console.log("invoke in denodeify".red);
console.log(error.toString().red);
>
);

3. Utilisez Q.deferd

Copier le code Le code est le suivant :

var fsReadFile_deferd = fonction (fichier, encodage){
var différé = Q.defer();
FS.readFile(fichier,encodage,fonction(erreur,résultat){
Si(erreur){
        deferred.reject(error.toString().red);
>
différé.resolve(result);
});

retourner différé.promise;
};

fsReadFile_deferd(file).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. Utilisez makeNodeResolver()

Copier le code Le code est le suivant :

var fsReadFile_makeNodeResolver = fonction (fichier, encodage){
var différé = Q.defer();
FS.readFile(file,encoding,deferred.makeNodeResolver());
Retour différé.promise;
};

fsReadFile_makeNodeResolver(file,encoding).then(function(result){
console.log("invoke in makeNodeResolver".red);
console.log(result.green);
},fonction(erreur){
console.log(error.toString().red);
});
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn