产品世界当前位置:菲娱2国际 > 产品世界 > >

菲娱国际注册:详谈nodejs异步编程(7)


  var compareData = getCompareInfo(alarmData);  
  render(compareData);  
  } catche(err) {  
  console.log(err.message);  
  }  
  
  

  

在上述例子中把异常处理放到最后进行处理,这样当其中存在某个环节出现异常,我们无法准确知道到底是哪个事件产生的。

  

  

2.2 jQuery.Deferred 的问题  

  

jQuery中也实现了异步操作,但是在实现上不符合promise/A+规范,主要表现在以下几个方面:  

  

a. 参数的个数:标准的Promise只能接受一个参数,而jQuery中则可以传递多个参数  

  

代码如下:

  
  function asyncInJQuery() {  
  var d = new $.Deferred();  
  setTimeout(function() {  
  d.resolve(1, 2);  
  }, 100);  
  return d.promise()  
  }  
  asyncInJQuery().then(function(val1, val2) {  
  console.log('output: ', val1, val2);  
  });  
  // output: 1 2  
  
  

  

b. 结果处理中异常的处理  

  

代码如下:

  
  function asyncInPromise() {  
  return new Promise(function(resolve) {  
  setTimeout(function() {  
  var jsonStr = '{"name": "mt}';  
  resolve(jsonStr);  
  }, 100);  
  });  
  }  
  asyncInPromise().then(function(val) {  
  var d = JSON.parse(val);  
  console.log(d.name);  
  }).then(null, function(err) {  
  console.log('show error: ' + err.message);  
  });  
  // show error: Unexpected end of input  
  function asyncInJQuery() {  
  var d = new $.Deferred();  
  setTimeout(function() {   (责任编辑:admin)

上一篇:菲娱国际平台:Bootstrap面板使用方法

下一篇:没有了

推荐内容

客户服务热线

010-400-12345

在线客服