ノードコールバックをpromisifyする方法
8619 ワード
このようにnodejsで古典的なコールバックを持つことを考えてください.
こうするだけです.
:)
const fs = require('fs');
function readMyFile(myfile, options) {
fs.readFile(myfile, options, function(err, file) {
if(err) {
console.log('err', err);
} else {
console.log('file', file);
}
});
}
readMyFile('myfile', 'utf8');
このようなことをしたいのなら...
readMyFile('myfile', 'utf8')
.then(file => console.log('file', file)
...
手動でコールバックをこのように約束できます.const fs = require('fs');
function readMyFilePromise(myfile, options) {
return new Promise((resolve, reject) => {
fs.readFile(myfile, options, function(err, file) {
if(err) {
console.log('err', err);
reject(err);
} else {
console.log('file', file);
resolve(file);
}
});
});
}
readMyFilePromise('myfile', 'utf8')
.then(file => console.log('file', file))
.catch(err => console.log('err', err));
良いニュースは、それを行うには、util moduleを使用することができます.utilはnodejsに組み込まれています.こうするだけです.
const util = require('util');
const fs = require('fs');
const readPromise = util.promisify(fs.readFile);
readPromise('myfile', 'utf8')
.then(file => console.log('file', file))
.catch(err => console.log('err', err));
楽しい:)
Reference
この問題について(ノードコールバックをpromisifyする方法), 我々は、より多くの情報をここで見つけました https://dev.to/merlier/how-to-promisify-node-callbacks-2eo3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol