解决nodejs异步数据延迟 解决方案

回调还产生了很多问题,最严重的问题是callback hell回调地狱。

fs.readFile('/etc/password', function(err, data){
    // do something
    fs.readFile('xxxx', function(err, data){
        //do something
            fs.readFile('xxxxx', function(err, data){
            // do something
        })
    })
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这个例子可能不恰当,但也能理解,在类似这种情况会出现一层套一层的代码,可读性、维护性差。


展开阅读全文

异步延迟问题

04-20

操作就是点击预览之后返回一个字符串,然后页面根据这个字符串来操作rn但因为异步方法,所以会有延迟,返回的字符串总是空rn求教怎么解决?rn我看有个帖子说可以加个延迟System.Threading.Thread.Sleep(1000);rn可是我不知道这个延迟应该加在哪?rnrn这是页面的代码,点击预览执行方法rn[code=C#]rn//预览rn//.sfvm是viewmodel层rnthis._sfvm.AsynchronousMessage += new EventHandler(_sfvm_AsynchronousMessage);rnprivate void btnView_Click(object sender, RoutedEventArgs e)rnrn FaxInfo fax = modelToFaxInfo(this._sfvm.FaxModel);rn this._sfvm.getFaxTifFileUri(fax);rnrnrnvoid _sfvm_AsynchronousMessage(object sender, HandMessage e)rnrn if (!string.IsNullOrEmpty(e.Result))rn rn sourseUrl = e.Result;rn rn elsern rn messageBox = new cwMessageBox("无法生成预览");rn messageBox.Show();rn rnrn[/code]rnrn这是viewmodel层rn[code=C#]rn public void getFaxTifFileUri(FaxInfo fax, CustomException ex)rnrn FaxServiceProxy.FaxServiceClient proxy = new FaxServiceClient();rn proxy.GetFaxTifFileUriCompleted += new EventHandler(proxy_GetFaxTifFileUriCompleted);rn proxy.GetFaxTifFileUriAsync(fax, ex);rnrnrnvoid proxy_GetFaxTifFileUriCompleted(object sender, GetFaxTifFileUriCompletedEventArgs e)rnrn if (e.Error==null)rn rn HandMessage hm = new HandMessage();rn hm.Result = e.Result;rn AsynchronousMessage(null, hm);rn rnrnrn/// 回调事件rn/// rnpublic event EventHandler AsynchronousMessage;rn[/code]rnrn 论坛

没有更多推荐了,返回首页