我的加价:
<section id="drop-target">
Drop file here...
</section>
Run Code Online (Sandbox Code Playgroud)
我的代码:
var dropTarget = document.getElementById('drop-target');
Rx.Observable.fromEvent(dropTarget, 'dragover').subscribe(function(event) {
event.preventDefault();
});
var dropStream = Rx.Observable.fromEvent(dropTarget, 'drop');
dropStream.subscribe(function(event) {
console.log('This will be called.');
event.preventDefault();
});
dropStream.map(function(event) {
console.log('This will not be called.');
return event.dataTransfer.files[0].path;
});
Run Code Online (Sandbox Code Playgroud)
有关如何map调用我的上次回调的任何想法?我需要两个preventDefaultS代表drop和dragover以防止浏览器打开该文件.
您只需订阅您的信息map流即可.所有这些map都是创建一个新的observable,它将map在流上运行操作.但你仍然需要订阅让它做一些事情:
dropStream
.map(function (event) {
console.log("hello");
return event.dataTransfer.files[0].path;
})
.subscribe(function (path) {
console.log("path=" + path);
});
Run Code Online (Sandbox Code Playgroud)