Tag: 可写

Node.js的writable.write返回false?

我想上传(stream)控制写入过程。 但写入过程总是返回false。 大file upload过程停止。 代码的输出如下; > Node app.js > False > False > False > False 我究竟做错了什么? 我的代码 app.js var http = require('http'); var fs = require('fs'); http.createServer(function(req, res){ var readable = fs.createReadStream('read.mkv'); var writable = fs.createWriteStream('write.mkv'); readable.on('data', function(chunk){ var buffer = writable.write(chunk); if(!buffer){ // —-> Always false! Why???? readable.pause(); } console.log(buffer); }); writable.on('drain', function(){ […]

Javascript可写描述符是否阻止实例的更改?

答案 (请在下面阅读,他们各自的作者提供了有价值的见解): “writable:false”可以防止分配一个新的值, 但 Object.defineProperty不是一个分配操作,因此忽略“可写” 属性属性是inheritance的,因此一个属性在每个子类/实例上将保持不可写,直到一个子类(或子类的实例)将“writable”的值更改为true 问题 : 有关属性“可写”描述符的MDN文档声明: 当且仅当与属性相关联的值可能被赋值运算符改变时才为真。 默认为false。 官方的ECMA-262第6版或多或less陈述相同。 意思很清楚,但就我的理解而言,它仅限于原始财产(即该特定对象的财产) 不过,请考虑下面的例子( JSFiddle ): //works as expected, overloading complete var Parent = function() {}; Object.defineProperty(Parent.prototype, "answer", { value: function() { return 42; } }); var Child = function() {}; Child.prototype = Object.create(Parent.prototype, { answer: { value: function() { return 0; } } }); […]