我有这个:
getReadableStream() {
const readableStream = new Readable({
read(size) {
return false;
}
});
this.readableStreams.push(readableStream);
return readableStream;
}
然而,如果我可以推送到数组并在同一个调用中返回该项,那将是很好的,我正在寻找这个:
getReadableStream() {
return this.readableStreams.push(new Readable({
read(size) {
return false;
}
}));
}
但当然Array.prototype.push
不会返回被推送的项目。有没有办法用JavaScript做到这一点?理想情况下,我不想创建一个新数组,保留原始数组。
答案 0 :(得分:2)
如果您想在一行中执行此操作,可以使用comma operator:
return this.readableStreams.push(readableStream), readableStream;
答案 1 :(得分:1)
一个丑陋的解决方案是覆盖Arrays原型:
Array.prototype.pushAndReturn = function(el){
this.push(el);
return el;
};
所以你可以做到
return readableStreams.pushAndReturn(new Readable())
或者只是创建一个帮手:
const push = (arr, el) => arr.push(el) && el;
所以你可以这样做:
return push(readableStreams, new Readable())