微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript使用Promise对象实现异步编程

Promise对象是Commonjs工作组为异步编程提供的统一接口,是ECMAScript6中提供了对Promise的原生支持,Promise就是在未来发生的事情,使用Promise可以避免回调函数的层层嵌套,还提供了规范更加容易的对异步操作进行控制。提供了reject,resolve,then和catch等方法

使用PROMISE

Promise是ES6之后原生的对象,我们只需要实例化Promise对象就可以直接使用。 实例化Promise:

5) { console.log(" run success"); resolve(); } else { console.log(" run Failed"); reject();

}
});

这里定义了一个回调方法function(resolve,reject),如果成功了就调用resolve,失败了就会调用reject。 Promise.prototype.then是Promise执行完之后的回调,可以用then方法分别指定resolve和reject的回调。

rush:js;"> promise.then(function () { console.log(' resolve from promise'); },function () { console.log(' reject from promise'); });

执行结果一:

rush:bash;"> begin do something run success resolve from promise

执行结果二:

rush:plain;"> begin do something run Failed reject from promise

使用PROMISE进行网络请求

rush:js;"> getRequest = function (url) { var promise = new Promise(function (resolve,reject) { var request = require('request'); request(url,function (error,respones,body) { if (error) { reject(error); return; } if (respones.statusCode == 200) { resolve(body)
  } else {
    reject(respo<a href="https://www.jb51.cc/tag/nes/" target="_blank" class="keywords">nes</a>.status);

  }
});

});
return promise;

};

getRequest("https://github.com/").then(function (result) {
console.log(result);
},function (error) {
console.error('error',error);
});

使用Promise进行网络请求,也可以使用Promise在浏览上实现Ajax请求。

代码地址:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐