Heim  >  Artikel  >  Web-Frontend  >  Verwenden Sie q.js in node.js, um das Versprechen von api_node.js zu implementieren

Verwenden Sie q.js in node.js, um das Versprechen von api_node.js zu implementieren

WBOY
WBOYOriginal
2016-05-16 16:36:171251Durchsuche

Um zu erfahren, was ein Versprechen ist und welche Probleme es löst, lernen Sie bitte die asynchrone Callback-Codierungsmethode von Node kennen und gehen Sie zu http://wiki.commonjs.org/wiki/Promises/A Siehe „Es hängt davon ab“. wie es definiert ist, daher werde ich hier nicht näher darauf eingehen.

Hier sehen wir uns an, wie man q.js verwendet, um das Versprechen der Node-API umzusetzen.

1. Alles beginnt mit der Installation

Code kopieren Der Code lautet wie folgt:

npm install q

2. Promise-Methode der Standard-Knotenstil-API

1. Verwenden Sie Q.nfcall

Im Vergleich zu Q.fcall ist Q.nfcall der Q.fcall des Knotens.

Code kopieren Der Code lautet wie folgt:

var FS = require('fs'),
Q = require('q'),
farben = require('colors'),
Datei = 'example.txt';
var fsReadFile = Q.nfcall(FS.readFile,file,encoding);
fsReadFile.then(function(result){
console.log((„in nfcall“-Datei aufrufen).red);
console.log(result.green);
},function(error){
console.log(“invoke in nfcall”.red);
console.log(error.toString().red);
}
);

2. Verwenden Sie Q.denodeify

Code kopieren Der Code lautet wie folgt:

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

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

3. Verwenden Sie Q.deferd

Code kopieren Der Code lautet wie folgt:

var fsReadFile_deferd = function(file,encoding){
var deferred = Q.defer();
FS.readFile(file,encoding,function(error,result){
If(error){
        deferred.reject(error.toString().red);
}
deferred.resolve(result);
});

return deferred.promise;
};

fsReadFile_deferd(file).then(function(result){
console.log("invoke in deferd".red);
console.log(result.toString().green);
},function(error){
console.log("invoke in deferd".red);
console.log(error.toString().red);
}
);

4. Verwenden Sie makeNodeResolver()

Code kopieren Der Code lautet wie folgt:

var fsReadFile_makeNodeResolver = function(file,encoding){
var deferred = Q.defer();
FS.readFile(file,encoding,deferred.makeNodeResolver());
Rückgabe deferred.promise;
};

fsReadFile_makeNodeResolver(file,encoding).then(function(result){
console.log("invoke in makeNodeResolver".red);
console.log(result.green);
},function(error){
console.log(error.toString().red);
});
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn