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 举报,一经查实,本站将立刻删除。