标签: synchronous

node.js:stdin的readSync?

是否可以从node.js中的stdin同步读取?因为我正在用JavaScript编写一个关于JavaScript编译器的脑筋(只是为了好玩).Brainfuck支持需要同步实现的读取操作.

我试过这个:

const fs = require('fs');
var c = fs.readSync(0,1,null,'utf-8');
console.log('character: '+c+' ('+c.charCodeAt(0)+')');
Run Code Online (Sandbox Code Playgroud)

但这只产生这个输出:

fs:189
  var r = binding.read(fd, buffer, offset, length, position);
              ^
Error: EAGAIN, Resource temporarily unavailable
    at Object.readSync (fs:189:19)
    at Object.<anonymous> (/home/.../stdin.js:3:12)
    at Module._compile (module:426:23)
    at Module._loadScriptSync (module:436:8)
    at Module.loadSync (module:306:10)
    at Object.runMain (module:490:22)
    at node.js:254:10
Run Code Online (Sandbox Code Playgroud)

stdin synchronous node.js

51
推荐指数
9
解决办法
4万
查看次数

打开(2)中的O_SYNC和O_DIRECT标志如何不同/相似?

O_SYNC和O_DIRECT标志的使用和效果非常混乱,并且在平台之间似乎有所不同.从Linux手册页(参见此处的示例),O_DIRECT提供同步I/O,最小化缓存效果,并要求您自己处理块大小对齐.O_SYNC只保证同步I/O. 虽然两者都保证将数据写入硬盘的缓存,但我相信直接I/O操作应该比普通的同步I/O更快,因为它们绕过页面缓存(尽管FreeBSD的open(2)手册页指出使用O_SYNC时,旁路缓存.请参见此处).

O_DIRECT和O_SYNC标志之间究竟有什么区别?一些实现建议使用O_SYNC | O_DIRECT.为什么?

io posix synchronous

49
推荐指数
4
解决办法
6万
查看次数

为什么node.js是异步的?

实际上没有人问过这个问题(来自我提出的所有"建议"以及我在这里询问之前的搜索).

那么为什么node.js是异步的呢?

根据我在一些研究后得出的结论:

像PHP和Python这样的语言是脚本语言(我可能错误的是脚本语言的实际语言),而JavaScript则不然.(我想这源于JS不编译的事实?)

Node.js在单个线程上运行,而脚本语言使用多个线程.

异步意味着无状态,并且连接是持久的,而同步是(几乎)相反的.

也许答案是在上面所说的地方找到的,但我仍然不确定.

我与本主题相关的第二个也是最后一个问题是:

JavaScript可以成为同步语言吗?

PS.我知道有些人会问"你为什么要让JS同步?" 在你的答案中,但事实是我没有.我只是问这些类型的问题,因为我确信那里有更多的人,而不仅仅是我自己想过这些问题.

javascript multithreading asynchronous synchronous node.js

49
推荐指数
3
解决办法
3万
查看次数

JavaScript:Ajax请求之后的全局变量

问题相当简单和技术性:

var it_works = false;

$.post("some_file.php", '', function(data) {

     it_works = true;

});

alert(it_works); # false (yes, that 'alert' has to be here and not inside $.post itself)
Run Code Online (Sandbox Code Playgroud)

我想要实现的是:

alert(it_works); # true
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?如果没有可以$.post()返回要应用的值it_works

javascript ajax jquery global synchronous

48
推荐指数
3
解决办法
9万
查看次数

AFNetworking可以同步返回数据(在块内)吗?

我有一个使用AFJSONRequestOperation的函数,我希望仅在成功后返回结果.你能指出我正确的方向吗?对于块和AFNetworking,我仍然有点无能为力.

-(id)someFunction{
    __block id data;

    AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
        success:^(NSURLRequest *request, NSHTTPURLResponse *response, id json){
            data = json;
            return data; // won't work
        }
        failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){

        }];



    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [queue addOperation: operation];

    return data; // will return nil since the block doesn't "lock" the app.
}
Run Code Online (Sandbox Code Playgroud)

synchronous ios objective-c-blocks afnetworking

46
推荐指数
4
解决办法
4万
查看次数

JS - 无法组合lib文件

我在index.html文件中有多个lib文件,它们按正确顺序加载到我正在运行的应用程序中.

<!-- example of some of them... -->
<script src="/./sys/lib/jquery.min.js"></script>
<script src="/./sys/lib/jquery.ui.min.js"></script>
<script src="/./sys/lib/jquery.easing.min.js"></script>
<script src="/./sys/lib/underscore.min.js"></script>
<script src="/./sys/lib/handlebars.min.js"></script>
<script src="/./sys/lib/backbone.min.js"></script>
<script src="/./sys/lib/moment.min.js"></script>
<script src="/./sys/lib/libs.extensions.js"></script>
Run Code Online (Sandbox Code Playgroud)

它们运行良好,它们已经全部缩小了.

现在,我想将这些全部组合到一个文件中以加载速度:

<script src="/./sys/lib/libs.all.js"></script>
Run Code Online (Sandbox Code Playgroud)

所以我打开新libs.all.js文件,逐个将缩小的.js文件粘贴到其中,修改,按照与上面列出的完全相同的顺序.这有效,直到我到达moment.js.当我将其粘贴并运行它时,我得到一个JS错误.

TypeError: (intermediate value)(...) is not a function
Run Code Online (Sandbox Code Playgroud)

我没有得到我所缺少的东西 - 如果我在HTML文件中同步加载时按正确顺序粘贴它们,有什么区别?

html javascript shared-libraries synchronous

45
推荐指数
1
解决办法
1万
查看次数

如何在JavaScript中同步播放音频文件?

我正在制作一个程序,将文本转换为莫尔斯电码音频.

说我输入sos.我的程序将把它变成数组[1, 1, 1, 0, 2, 2, 2, 0, 1, 1, 1].哪里s = dot dot dot(或1,1,1),和o = dash dash dash(或2,2,2).这部分很容易.

接下来,我有两个声音文件:

var dot = new Audio('dot.mp3');
var dash = new Audio('dash.mp3');
Run Code Online (Sandbox Code Playgroud)

我的目标是有一个功能,dot.mp3当它看到a时1,dash.mp3当它看到a时会播放,并在看到a 2时暂停0.

以下类型/有时/有时可行,但我认为它存在根本缺陷,我不知道如何修复它.

function playMorseArr(morseArr) {
  for (let i = 0; i < morseArr.length; i++) {
    setTimeout(function() {
      if (morseArr[i] === 1) {
        dot.play();
      }
      if (morseArr[i] === …
Run Code Online (Sandbox Code Playgroud)

javascript synchronous playback html5-audio

44
推荐指数
3
解决办法
3101
查看次数

何时使用JMS以及何时使用REST?

除了特定问题的异步/同步特性,并考虑到MOM(在这种情况下选择了JMS)提供免费的额外功能,如负载平衡和其他功能,在选择JMS而不是REST时还可以考虑其他什么,反之亦然?

谢谢

rest integration asynchronous jms synchronous

43
推荐指数
2
解决办法
2万
查看次数

如何使事件处理程序异步运行?

我正在编写一个Visual C#程序,它在辅助线程上执行连续的操作循环.偶尔当该线程完成任务时,我希望它触发一个事件处理程序.我的程序执行此操作但触发事件处理程序时,辅助线程等待事件处理程序完成后再继续执行该线程.如何让它继续?这是我目前的结构方式......

class TestClass 
{
  private Thread SecondaryThread;
  public event EventHandler OperationFinished;

  public void StartMethod()
  {
    ...
    SecondaryThread.Start();      //start the secondary thread
  }

  private void SecondaryThreadMethod()
  {
    ...
    OperationFinished(null, new EventArgs());
    ...  //This is where the program waits for whatever operations take
         //place when OperationFinished is triggered.
  }

}
Run Code Online (Sandbox Code Playgroud)

此代码是我的某个设备的API的一部分.当触发OperationFinished事件时,我希望客户端应用程序能够执行它所需的任何操作(即相应地更新GUI),而不会导致API操作.

另外,如果我不想将任何参数传递给事件处理程序,我的语法是否正确使用OperationFinished(null, new EventArgs())

c# multithreading event-handling synchronous eventargs

41
推荐指数
4
解决办法
5万
查看次数

同步加载和执行javascript代码

有没有办法像同步XMLHttpRequest一样以同步方式加载和执行javascript文件?

我目前正在使用同步XMLHttpRequest,然后使用eval,但调试该代码非常困难......

谢谢你的帮助!

更新

我现在试过这个:

的test.html

<html>
    <head>
        <script type="text/javascript">
            var s = document.createElement("script");
            s.setAttribute("src","script.js");
            document.head.appendChild(s);
            console.log("done");
        </script>
    </head>
    <body>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

的script.js

console.log("Hi");
Run Code Online (Sandbox Code Playgroud)

输出:完成嗨

所以它没有同步执行.任何想出"嗨"的想法首先出现?

更新2 其他示例

test.html(脚本标记内的代码)

var s = document.createElement("script");
s.setAttribute("src","script.js");
document.head.appendChild(s);
SayHi();
Run Code Online (Sandbox Code Playgroud)

的script.js

function SayHi(){
    console.log("hi");
}
Run Code Online (Sandbox Code Playgroud)

输出:未捕获的ReferenceError:未定义SayHi

javascript load synchronous

41
推荐指数
4
解决办法
5万
查看次数