Comments (4)
内部でpromise実行させる場合も次のメソッドに前回の結果を渡せるようにし
from promises-book.
fs
をラップした例を書くのが良さそう。
- file read
- fileの変更処理
- file write
とういう事をpromise chainで書けるようなラッパ。
errorはcatchできるようにすると良さそう。
変更処理はユーザー定義関数を渡す感じで、
引数にはファイルのpromise オブジェクトがくる.
Promise.resolveで受けるケースにもなる
もっと高速にするならstreamを使うべきという展開と、
bluebirdとかのpromisefyについて触れる
from promises-book.
シンプルに書くとこんな感じになりそうだけど、
promiseをラップした関数でcatch
はどういう扱いにするのがいいんだろ?
普通にcatch
として外にだすのがいいのかな
"use strict";
var fs = require("fs");
function File() {
this.promise = Promise.resolve();
}
File.prototype.runPromise = function (fn) {
var that = this;
this.promise = this.promise.then(function (value) {
return fn.call(that, value)
});
};
File.prototype.read = function (filePath) {
this.runPromise(function () {
return fs.readFileSync(filePath, "utf-8");
});
return this;
};
File.prototype.transform = function (fn) {
this.runPromise(fn);
return this;
};
File.prototype.write = function (filePath) {
this.runPromise(function (data) {
return fs.writeFileSync(filePath, data)
});
return this;
};
File.prototype["catch"] = function (onRejected) {
return this.promise.catch(onRejected);
};
module.exports.File = File;
module.exports.readAsPromise = function (filePath) {
var file = new File();
return file.read(filePath);
};
from promises-book.
http://azu.github.io/promises-book/#_promise_6 追加した
from promises-book.
Related Issues (20)
- Node.jsのutil.promisifyについてを追加する HOT 1
- オフライン対応
- getURLのresolveを2xx全体を扱うように変更する HOT 2
- 1.xのアーカイブページの作成
- assertのPromiseサポート HOT 1
- Arrow Functionについての解説も追加
- v1のアーカイブリンク
- Deferredをclass化
- Promise.allSettled (ES2020)
- promise-funへのリンク
- Promise.any(ES2021) HOT 2
- typo reoslve -> resolve
- Unhandled RejectionとNode.jsの挙動 HOT 2
- copyOwnFromとTimeoutErrorが重複している
- for await...ofについての記述を追加 HOT 4
- Fulfilled と FulFilled の表記ゆれ HOT 4
- Move to GItHub Actions
- throwについて現実的な利用について書く
- 意図しない赤字表示になっているのではないか HOT 4
- Promise Anti-patterns へのリンクを開くとリンク広告のようなページが表示される HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from promises-book.